Python 项目管理的利器:虚拟环境 venv 的使用
virtualenv 用于解决环境依赖而存在,通过 virtualenv 命令可以生成项目的独立依赖环境。
如果本地有多个版本的 Python ,需要对不同版本的 Python 单独安装 virtualenv 。
不清楚管理多个版本 Python 的,可以参考我的另一篇 Mac管理多版本Python
不久之前,重装了系统,发现 system 下的 Python (系统自带的版本)默认没有安装 pip
先安装下 pip ,终端下执行:
安装完毕如下:
安装virtualenv
出现这样的警告:
说是 Python 2.7 将于2020年1月1日结束它的生命。。。
看来 Python3 大势已定。
如果出现这样的错误:
应该是权限问题,根据提示加上 --user 试试。
安装成功:
查看当前 Python 版本: system ,已经安装的库:
新建一个文件夹test,test作为工程文件夹,在该文件夹中创建 venv 环境。
使用virtualenv命令,可以自动创建 venv 环境。
可以发现 virtualenv 已经安装,但是会提示无此命令:
可以再执行一次安装命令,终端会提示 virtualenv 的安装路径:
顺着这条路径
/Users/wuxiaoxin/Library/Python/2.7/lib/python/site-packages
可以找到 virtualenv 命令文件所在路径
/Users/wuxiaoxin/Library/Python/2.7/bin/virtualenv
这个命令 virtualenv 可以成功执行。至于为什么安装后不会自动设置环境变量,原因不详。
这时候有两种方式可以尝试下
重启终端,查看 PATH ,发现路径已经成功加到 PATH
测试成功:
这里其实不需要考虑 Python 版本问题, virtualenv 命令已经限定了 Python 版本。
如果你将 .bash_profile 中关于 virtualenv 的路径设置注释掉,重启终端,再执行 virtualenv ,会发现:
现在可以正常使用了:
加上了参数 --no-site-packages ,这样,已经安装到系统 Python 环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的 Python 运行环境。
实测不加这么个参数,直接执行 virtualenv venv 也是一样的效果呢。
如何知道?启动该虚拟环境,在该环境下 pip list 即可一目了然。
比如我的一个虚拟环境安装在这个路径下:
/Users/vampire/Desktop/test3/venv
那么可以这样启动虚拟环境:
如图,已经启动虚拟环境:
如下,test3中使用参数 --no-site-packages ,test4中不使用参数 --no-site-packages ,实测可以看出, --no-site-packages 参数加上和不加上,效果一样:
只有一种可能, --no-site-packages 是默认参数。
终端下执行virtualenv可以看到:
那么 --system-site-packages 就是它的对立参数了,测试下:
可以看到,安装在系统的 Python 环境中的库,也复制到这个虚拟环境中来了。
还需要注意的是这个参数:
可以看出,执行 virtualenv 命令生成的虚拟环境,默认是依据
/usr/bin/python 目录下的 Python 环境。其实也就是当前安装 virtualenv 所属的 Python 的版本。
当前电脑下有两个 Python 环境:
如果这样执行命令,会怎样?
如果是这样限制的话,需要创建源自 python3.7.4 版本的依赖环境,直接使用 pyenv 进行切换即可, virtualenv 不需要带这个参数 --python 了。
假设一个新的 venv 虚拟环境所在的目录如下:
/Users/vampire/Desktop/test/venv
venv 目录中包含如下文件夹:
退出虚拟环境的命令:
终端下先进入该venv环境,再执行 pip install 安装。
一般我们使用 virtualenv 的目的是为了让一个工程拥有独立的依赖环境。
我们会把 virtualenv 生成的环境 venv 放置在工程路径下。
如果我们移动了这个工程的路径, venv 路径也会随之改变,因此注意修改这个命令文件
activate ,打开这个文件,你会发现其实就是 bash shell 脚本,该命令的路径也固定写在其中:
python3默认安装了venv虚拟环境,所以直接使用即可
1.创建虚拟环境
在cmd命令行下执行
python -m venv 英文格式的虚拟环境目录名称
创建以后在对应的文件夹可以看到如下文件:
2.激活需要环境:
注意:只有激活之后,才算进入该虚拟环境,否则安装包时,依然是安装在全局环境之下
激活文件在Script文件夹下,如图所示。激活:activate.bat,退出:deactivate.bat
激活方式为:dos 界面进入pyton虚拟环境文件夹/Script,然后输入activate.bat (也可直接输入activate)即可激活环境,输入python 就进入python3.6环境了。
退出方式:输入deactivate.bat 或 deactivate
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)