virtualenv python虚拟环境
virtualenv安装
(转自廖雪峰的一段话)在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的site-packages目录下。
如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?
这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。
1. 使不同的应用开发环境独立
2. 环境升级不影响其他应用,也不会影响全局的python环境
3. 防止系统中出现包管理混乱和版本冲突
mac环境下安装
首先通过 pip 安装virtualenv
$ sudo pip3.7 install virtualenv
$ sudo conda install virtualenv 二者选一
假定我们要开发一个新的项目,需要一套独立的Python运行环境
1. 创建目录edu
1 $ mkdir edu
2 $ cd edu/
2. 创建一个独立的Python运行环境,命名为testvirtualenvdir,位于 /usr/local/ 目录下
$ sudo virtualenv --no-site-packages testvirtualenvdir
Using base prefix '/anaconda3'
New python executable in /usr/local/testvirtualenvdir/bin/python
copying /anaconda3/bin/python => /usr/local/testvirtualenvdir/bin/python
Installing setuptools, pip, wheel...done.
添加参数--no-site-packages,不会复制已经安装到系统Python环境中的所有第三方包不会复制,可得到了一个不带任何第三方包的“干净”的Python运行环境。
如果出现setuptools pip wheel failed with error code 1,移步https://www.cnblogs.com/tabjin/articles/11098412.html
3. 进入环境名为 testvirtualenvdir 的Python环境
$ source /usr/local/testvirtualenvdir/bin/activate
(testvirtualenvdir) (base) TabbitsdeMacBook-Pro:bin Tabbits$
4. 退出环境testvirtualenvdir
(testvirtualenvdir) Tabbits$ deactivate
virtualenvwrapper安装
mac环境下安装
第一步,通过 pip 安装virtualenv
$ sudo pip3.7 install virtualenvwrapper
第二步,创建虚拟目录 testvirtualdir2 (自定义)
$ mkvirtualenv testvirtualdir2
或者创建指定Python版本的虚拟环境
$ mkvirtualenv -p /usr/local/bin/python3.7 testvirtualdir3
目录创建于/Users/Tabbits/.virtualenvs目录下
第三步,进入虚拟环境
$ workon testvirtualdir3
(testvirtualdir2):bin Tabbits$
第四步,退出虚拟环境(即可回到正常环境)
(testvirtualdir3)MacBook-Pro:bin Tabbits$ deactivate
第五步,删除虚拟环境
(base)MacBook-Pro:bin Tabbits$ rmvirtualenv testvirtualdir3
Removing testvirtualdir3...
查看虚拟环境中安装的开发包
查看虚拟环境edu的安装包
(edu) (base) TabbitsdeMacBook-Pro:.virtualenvs Tabbits$ pip3.7 list
Package Version
---------- -------
pip 19.1.1
setuptools 41.0.1
wheel 0.33.4
测试虚拟环境edu中安装包requests
(edu) (base) TabbitsdeMacBook-Pro:.virtualenvs Tabbits$ sudo pip3.7 install requests Password: Collecting requests Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB) |████████████████████████████████| 61kB 40kB/s Collecting idna<2.9,>=2.5 (from requests) Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB) |████████████████████████████████| 61kB 24kB/s Collecting chardet<3.1.0,>=3.0.2 (from requests) Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB) |████████████████████████████████| 143kB 36kB/s Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests) Downloading https://files.pythonhosted.org/packages/e6/60/247f23a7121ae632d62811ba7f273d0e58972d75e58a94d329d51550a47d/urllib3-1.25.3-py2.py3-none-any.whl (150kB) |████████████████████████████████| 153kB 23kB/s Collecting certifi>=2017.4.17 (from requests) Downloading https://files.pythonhosted.org/packages/69/1b/b853c7a9d4f6a6d00749e94eb6f3a041e342a885b87340b79c1ef73e3a78/certifi-2019.6.16-py2.py3-none-any.whl (157kB) |████████████████████████████████| 163kB 26kB/s Installing collected packages: idna, chardet, urllib3, certifi, requests Successfully installed certifi-2019.6.16 chardet-3.0.4 idna-2.8 requests-2.22.0 urllib3-1.25.3
成功安装之后,再次通过 pip3.7 list 查看安装包列表
(edu) (base) TabbitsdeMacBook-Pro:.virtualenvs Tabbits$ pip3.7 list Package Version ---------- --------- pip 19.1.1 requests 2.22.0 setuptools 41.0.1 wheel 0.33.4
卸载,然后通过 pip3.7 list 查看安装包列表
(edu) (base) TabbitsdeMacBook-Pro:.virtualenvs Tabbits$ sudo pip3.7 uninstall requests WARNING: The directory '/Users/Tabbits/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Uninstalling requests-2.22.0: Would remove: /Users/Tabbits/.virtualenvs/edu/lib/python3.7/site-packages/requests-2.22.0.dist-info/* /Users/Tabbits/.virtualenvs/edu/lib/python3.7/site-packages/requests/* Proceed (y/n)? y Successfully uninstalled requests-2.22.0
(edu) (base) TabbitsdeMacBook-Pro:.virtualenvs Tabbits$ pip3.7 list
Package Version
---------- ---------
pip 19.1.1
setuptools 41.0.1
wheel 0.33.4

浙公网安备 33010602011771号