python的虚拟环境图文详解(虚拟环境作用以及虚拟环境搭建,切换,退出,迁移打包)代码演示 https://blog.youkuaiyun.com/weixin_45440484/article/details/130144943
http://www.360doc.com/content/23/0828/21/1339386_1094251670.shtml
为什么要使用虚拟环境?
首先,虚拟环境有助于保持你的项目整洁和独立。你不必担心一个项目的依赖会破坏另一个项目,这使得项目管理变得轻松。
其次,虚拟环境使得共享项目变得更容易。你可以分享你的项目的虚拟环境配置,确保其他人可以轻松地搭建相同的环境,而不必担心依赖的问题。
说明:
?python 是一个在不断演化中的软件,版本很多;
py 的各种应用 app,都是建立在不同版本的 python 之上的产物;
虽然理论上版本对低版本应该兼容,但 python 很难做到。
有时,不同的 py应用 App 需要在同一台电脑上运行的时候,如果不采用虚拟环境来隔离,那么,很可能会造成“一个项目的依赖会破坏另一个项目”。
方便迁移:同一个app 需要在不同的电脑上进行工作。
python venv:官方在 3.3 版以上开始引入。
python3 -m venv myvenv
virualenv:第三方库,可以在 python2/3中使用。
conda:是 Anaconda 发行版的一部分。
Python虚拟环境(pipenv、venv、conda一网打尽)[通俗易懂]
https://cloud.tencent.com/developer/article/2124483
摘要:
3. 常用工具
知道了什么是虚拟环境,就应该清楚如何去管理虚拟环境,这就离不开虚拟环境管理工具,下面列出了一些常用的工具,并在稍后的内容中对部分工具的使用作简单的介绍。
- Virtualenv virtualenv 是非常流行的 python 虚拟环境配置工具。它不仅同时支持 python2 和 python3,而且可以为每个虚拟环境指定 python 解释器,并选择不继承基础版本的包。
- venv 考虑到虚拟环境的重要性,Python 从3.3 版本开始,自带了一个虚拟环境模块 venv,关于该模块的详细介绍,可参考 PEP-405 。它的很多操作都和 virtualenv 类似。如果你使用的是python3.3之前版本或者是python2,则不能使用该功能,依赖需要利用virtualenv进行虚拟环境管理。
- pipenv pipenv 是Kenneth Reitz(requests的作者)大神的作品。它结合了 Pipfile,pip,和virtualenv,能够有效管理Python多个环境,各种包。并且windows视为一等公民。
4. 虚拟环境的本质
虚拟环境的本质就是修改了sys.path
的值,下面分别查看在虚拟环境和不在虚拟环境中的sys.path
值
在主要的区别在于第三方包的路径时,一个用的是虚拟环境的site-packages,而另一个是使用的python环境中的site-packages。
三、venv
Python 从3.3 版本开始,自带了一个虚拟环境模块 venv,关于该模块的详细介绍,可参考 PEP-405 和。
1. 命令概览
查看venv帮助信息:
python -m venv -h
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip] [--prompt PROMPT] ENV_DIR [ENV_DIR ...]
Creates virtual Python environments in one or more target directories.
positional arguments:
ENV_DIR A directory to create the environment in.
optional arguments:
-h, --help show this help message and exit
--system-site-packages
Give the virtual environment access to the system site-packages dir.
--symlinks Try to use symlinks rather than copies, when symlinks are not the default for the platform.
--copies Try to use copies rather than symlinks, even when symlinks are the default for the platform.
--clear Delete the contents of the environment directory if it already exists, before environment creation.
--upgrade Upgrade the environment directory to use this version of Python, assuming Python has been upgraded in-place.
--without-pip Skips installing or upgrading pip in the virtual environment (pip is bootstrapped by default)
--prompt PROMPT Provides an alternative prompt prefix for this environment.
Once an environment has been created, you may wish to activate it, e.g. by sourcing an activate script in its bin directory.
2. 创建虚拟环境
python -m venv venv_demo
这里使用得最多的两个选项为:
- ·
--system-site-packages
:是否包含Python系统的site-packages,添加这个选项后,会在sys.path
的末尾添加上系统的site-packages相关目录。不添加这个选项时,将不会包含系统的site-packages --without-pip
:虚拟环境中是否包含pip.exe
3. 虚拟环境的激活
在虚拟环境的Scripts目录中有两个脚本文本activate.bat
和deactivate.bat
,分别用于激活虚拟环境和退出虚拟环境。
注意:
- 在pipenv创建的虚拟环境中同样有这两个脚本文件
- activate文件有多个版本,当在windows系统时,如果用CMD时,使用activate.bat;如果用PowerShell时使用activate.psl
当我们激活虚拟环境后,系统的PATH路径的最前面添加了虚拟环境的Scripts目录,该目录下包含了pip.exe和python.exe。可以得到如下结论:
如果不激活虚拟环境:
- 如果不激活虚拟环境,直接运行虚拟环境的Scripts目录下的python.exe,则此时的交互环境也将是在此虚拟环境下
- 如果不激活虚拟环境,直接运行虚拟环境的Scripts目录下的pip.exe进行包的安装,则安装的包同样安装在虚拟环境中
注意,这里使用的PowerShell,所以查看path环境变量时使用的
$env:path
,如果是CMD,查看环境变量可以使用echo %PATH%
4. 虚拟环境包的管理
使用pip工具进行虚拟环境中包的管理,有两种方式
- 第一种方式,使用虚拟环境中的activate激活虚拟环境
- 第二种方式,不激活虚拟环境,但是运行的Pip指定为虚拟环境中Scripts目录下的pip.exe
pip命令的基本使用将在文末介绍。
pip常用命令总结
https://zhuanlan.zhihu.com/p/651163220
1. 查看版本
pip --version # python2.x命令
#############
pip3 --version # python3.x命令
2. 升级pip版本
我们在安装第三方库时,有时会提醒我们要对pip进行更新,下面的命令就可以升级pip命令,命令如下:
pip install -U pip
3. 查看已经安装的库
pip list
# 查找某个具体的库
pip list | grep 库名 # mac系统或者Linux系统
pip list | findstr 库名 # Windows系统
安装第三方库
安装第三方库需要运行pip install
这一条命令,下面是安装库名的几条具体命令:
pip install [options] <requirement specifier> [package-index-options] ...
pip install [options] -r <requirements file> [package-index-options] ...
pip install [options] [-e] <vcs project url> ...
pip install [options] [-e] <local project path> ...
pip install [options] <archive url/path> ...
直接安装
直接运行pip install [options] [package-index-options]
这一条命令,即可安装自己想要的库,示例如下:
pip install selenium
指定版本安装
有时候我们需要指定安装库的版本,所以我们就需要在命令中加上版本限制
pip install package # 默认安装最新版本
pip install package==3.141.0 # 指定版本
pip install package>=3.141.0 # 最小版本
指定源安装
pip默认是使用https://pypi.python.org/simple
这个官方源地址,但是这个源安装库可能会比较慢,所以我们可以指定境内源进行安装,加快速度,常用的境内源地址如下:
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
安装命令如下:
pip install -i https://pypi.douban.com/simple/ package
通过 requirements 文件批量安装第三方库
我们从GitHub等仓库中拉取代码之后,需要在本地运行项目时,如果项目带有requirements
文件,我们只需要通过这个文件就可以一次性安装这个项目所需要的第三方库了。
pip install [options] -r [package-index-options]
示例如下:
pip install -r requirements.txt
下载包但不安装
pip install <包名> -d <目录> pip install -d <目录> -r requirements.txt
卸载包
pip uninstall package pip uninstall -r requirements.txt
更新包
pip install --upgrade package pip install -U package # --upgrade 可简写为 -U
显示包所在的目录
pip show -f <包名>
查询可升级的包
pip list --outdated # 列出所有过期的库 pip list -o # --outdated的简写,列出所有过期的库
卸载 pip
python -m pip uninstall pip
:https://zhuanlan.zhihu.com/p/651163220