Python 安装虚拟环境
在安装虚拟环境之前,我们要了解虚拟环境是干啥的,为什么要有虚拟机环境的存在,其实,这个涉及到一个名字叫包污染的概念,我们都知道,在写项目的时候,可能有很多第三方依赖包,可能当时包的版本还是比较老的,当项目重构的时候,我们可能需要这些包,那么等到项目重构我们再去安装可能已经更新了,虽然能指定安装,但是还是不太友好,所以一般来说,我们在项目创建的时候就会创建一个虚拟环境,用来安装项目中的所有第三方库…
Python 安装虚拟环境有三种,
virtualenv
virtualenvwrapper
pipenv
使用virtualenv
(虚拟化)进行项目管理
virtualenv
:可以创建一个单独的虚拟环境,安装私有包,而不会污染全局环境,它让你的电脑从项目目录而不是系统全局的python
主目录下查找和安装包。
使用virtualenv
步骤如下(已经在Linux(ubuntu)
上操作过,window
还未实践):
1.虚拟环境使用第三方实用工具virtualenv
创建,可以输入以下命令可以检查系统是否安装了virtualenv
:1
virtualenv --version
如果结果显示错误,那么你就需要安装这个工具
注意:python3.3
通过 venv
模块原生支持虚拟环境,命令为pyvenv
。pyvenv
可以替代virtualenv
。不过要注意,在python3.3
中使用pyvenv
命令创建的虚拟环境不包括pip
,你需要手动安装。python3.4
改进了这一缺陷,pyvenv
完全可以替代virtualenv
大多数的Linux发行版都提供了
virtualenv
,例如linux用户可以使用下述命令安装1
sudo apt-get install python-virtualenv 或 pip install virtualenv
如果你的电脑是Mac OS X 系统,就可以使用easy_install 安装 virtualenv
1
sudo easy_install virtualenv
如果你的Window系统或没有其它官方virtualenv的包的操作系统,那么安装过程要稍微复杂点,在浏览器中输入http://bitbucket.org/pypa/setuptools/ 回车后会进入
setuptools
安装程序的主页。在这个页面中华找到下载安装脚本的链接,脚本名为ez_setup.py
。把这个保存到电脑的一个临时文件夹中,然后在这个文件夹中执行以下我命令:1
2python ez_setup.py install
easy_install virtualenv
注意:上述命令必须具有管理员权限的用户身份执行,在window系统中,请使用 以管理员身份运行选项打开命令行窗口,在基于Unix中,要在上面两个命令前加上 sudo
,或者以根用户身份执行,一旦安装完毕virtualenv
实用工具就可以从常规账号中调用
哈哈,说了这么多,还是一直在安讲安装,接下来我们就开始讲如何操作
- 首先要使用
virtualenv
来初始化项目1
virtualenv env
后面的这个env
告诉 virtualenv
,把所有的包都装在一个叫作env
的文件夹里,这个文件夹保存的是一个全新的虚拟环境,
- 激活
virtualenv
使用前需要激活这个环境,如果你是bash
命令行(Linux和Mac OS X用户),可以通过以下的命令来激活这个虚拟环境:1
source env\bin\activate
如果你是window用户,激活命令为;1
env/bin/activate
当虚拟环境被激活后,python解释器的路径就被添加到了PATH中,但是这种环境不是永久的,它只会影响当前的命令行会话。为了提醒你已经激活了虚拟环境,激活虚拟环境的命令会修改命令行的提示符,加入环境名: (evn)
$
然后我们就可以在这个虚拟环境中愉快的装包了,不用担心会影响全局变量
- 退出
virtualenv
- 退出你只需要一个命令就能完成了,那就是
deactivate
- 退出你只需要一个命令就能完成了,那就是
使用 pipenv 安装虚拟环境(Linux环境)
Pipenv 是 Python 项目的依赖管理器,类似 NodeJS的 npm 或 Ruby 的 bundler,那么为什么我们要使用pipenv呢,就是因为lockfile,所以我们要使用pipenv来进行项目的虚拟环境
1 | pip3 install --user pipenv |
注意 这样安装完之后,就去立马使用 pipenv 是会报错的,找不到这个命令,那么应该怎么做呢,
1 | PYTHON_BIN_PATH="$(python3 -m site --user-base)/bin" |
把上述配置写入 /etc/profile
文件 ,然后 source /etc/profile
激活一下 就可以永久使用了,不然只能在当前环境使用
1 | $ pipenv |
pipenv 创建虚拟环境
1 | # 查看当前虚拟环境 |
请参考 https://docs.pipenv.org/#cmdoption-pipenv-venv
补充
出处 董伟明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 # demo.py
import sys
import json
package = sys.argv[1]
other_dependencies = set()
removing_dependencies = set([package])
for i in json.load(sys.stdin):
for p in i['dependencies']:
key = p['key']
if i['package']['key'] == package:
removing_dependencies.add(key)
else:
other_dependencies.add(key)
print(' '.join(removing_dependencies - other_dependencies))
1 | pipenv uninstall `pipenv graph --json |python3 demo.py packageName` |