本文共 1504 字,大约阅读时间需要 5 分钟。
为什么需要使用虚拟环境
但你有多个项目,他们同时依赖一个包,但是依赖的版本不同的时候,就可以用到虚拟环境,可以可以解决包版本冲突的问题,类似于conda。
Python用于创建和管理虚拟环境的模块称为 venv.venv
通常会安装你可用的最新版本的Python。如果系统上已经有多个版本的Python,可以通过运行python3或你想要的任何版本来选择特定的 Python 版本。当你需要指定具体版本时,你可能需要使用另一个包来帮助你指定你需要的版本,那就是virtualenv
,这个后面再说。
在终端运行:
python -m venv test-env# 当同时有python2和3时python3 -m venv test-env
当你运行此命令的路径上不存在 test-env
目录时,则会创建目录,并在其中创建包含 Python 解释器、标准库和各种支持文件的副本的目录。
注意:上面的创建虚拟环境的命令,python
对应的版本即是虚拟环境创建的版本。
Windows:
test-env\Scripts\activate.bat
Linux:
source test-env/bin/activate
进入之后会在命令行前面带(test-env)
,
查看已经安装好的包
pip list只有两个最基础的包用于安装其他包,pip版本有点低,需要手动升级
python -m pip install --upgrade pip
现在可以使用pip安装项目需要的其他包
要退出环境只需要:
deactivate
前面提到如果需要指定版本的Python,而本地还没有对应版本的时候,则需要使用virtualenv
安装:
pip install virtualenv
创建环境:
virtualenv test-env2
这个命令会找到一个python
解释器来创建这个虚拟环境,默认情况下,与virtualenv运行的python
相同,但是我们可以通过-p
或者--python
参数更改它。
创建将虚拟环境标记为被版本控制系统(目前只支持Git)忽略的文件。打开test-env2
文件夹,可以看到了创建了一个.gitignore
文件。
Windows:
virtualenv -p C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe test-env3
Linux:
virtualenv -p /usr/bin/python test-env3
虽然这两种方法都可以很方便的创建虚拟环境,但是前提是对应的版本必须在本地已经安装过了,而且一旦本地的版本升级,对应依赖的虚拟环境可能会出现不可用的情况。而且创建的环境散落在各个项目的文件夹中,不便于统一管理。
pyenv据说可以解决上面提到的不足
总的来说,conda虽然会占用大量的磁盘空间,但是换来的是更加直接好的的体验,而venv或virtualenv则更加节省空间,也会让项目的环境更加干净。各有各的优缺点吧。
写这篇博客,是应为在某乎上看到对于虚拟环境和conda的一些争论,有的人力推conda,有的人全盘否定conda,主张Python官方的是最NB的。因为平时虚拟环境用的少,于是乎自己了解一波,听别人der der der,不如自己试一试。
转载地址:http://wmwrf.baihongyu.com/