Python 的第三方包成千上万,在一个 Python 环境下开发时间越久、安装依赖越多,就越容易出现依赖包冲突的问题。为了解决这个问题,开发者们开发出了 virtualenv,可以搭建虚拟且独立的 Python 环境。
这样就可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。
virtualenv
virtualenv是一个第三方包,是管理虚拟环境的常用方法之一。此外,Python 3 中还自带了虚拟环境管理包。
我们可以用easy_install
或者pip
安装。
pip install virtualenv
创建项目的虚拟环境
$ cd my_project_folder $ virtualenv venv # venv 可替换为别的虚拟环境名称
执行后,在本地会生成一个与虚拟环境同名的文件夹,包含 Python 可执行文件和 pip 库的拷贝,可用于安装其他包。
但是默认情况下,虚拟环境中不会包含也无法使用系统环境的global site-packages。比如系统环境里安装了 requests 模块,在虚拟环境里import requests
会提示ImportError
。如果想使用系统环境的第三方软件包,可以在创建虚拟环境时使用参数–system-site-packages
。
virtualenv --system-site-packages venv
另外,你还可以自己指定虚拟环境所使用的 Python 版本,但前提是系统中已经安装了该版本:
virtualenv -p /usr/bin/python2.7 venv
使用虚拟环境
进入虚拟环境目录,启动虚拟环境。
cd venv source bin/activate # Windows 系统下运行 Scripts\ python -V
如果未对命令行进行个性化,此时命令行前面应该会多出一个括号,括号里为虚拟环境的名称。启动虚拟环境后安装的所有模块都会安装到该虚拟环境目录里。
退出虚拟环境:
deactivate
如果项目开发完成后想删除虚拟环境,直接删除虚拟环境目录即可。
如果安装的时候没有bin目录:
Virtualenv在执行虚拟环境建立后没有bin目录的处理
使用环境:
window 7 64位
python 3.5.1
virtualenv 15.1.0
正常安装virtualenv:
pip install virtualenv
建立第一个虚拟环境
virtualenv env
发现虚拟目录中只有四个目录和一个文件,没有bin目录
\Include
\lib
\Scripts
\tcl
pip-selfcheck
经过检查,发现启动虚拟环境的需要的命令都在\Scripts中,如下:
├─Scripts
│ activate
│ activate.bat
│ activate.ps1
│ activate_this.py
│ deactivate.bat
│ easy_install-3.5.exe
│ easy_install.exe
│ pip.exe
│ pip3.5.exe
│ pip3.exe
│ python.exe
│ python35.dll
│ pythonw.exe
│ wheel.exe
因为没有bin目录,所以不能执行 source .\bin\activate 命令激活虚拟环境。
经过实验,可以在虚拟环境目录内执行下方命令启动虚拟环境
.\scripts\activate.bat
关闭虚拟环境需要执行下方的命令
.\scripts\deactivat.bat
使用visualenv与anaconda的区别:
使用visualenv前提条件是,Python以及pip事先已经存在了,而使用anaconda是不需要安装python和pip的,因为annaconda都涵盖了。
另外,有些时候因为权限什么的,直接使用pip 或者在visualenv中安装包报错的情况下,不如直接使用anaconda,因为里面涵盖了很多wheel,直接pip install XX 或者conda install XX即可
anaconda常用命令
1、查看已安装的包
conda list
2、更新所有包
conda upgrade --all
3、安装包
conda install package_name
4、删除包
conda remove package_name
5、更新包
conda update package_name
6、不知道包名要找包
conda search name
7、用conda建立虚拟环境
conda create -n env_name list_of_packages
其中 -n 代表 name,env_name 是需要创建的环境名称,list of packages 则是列出在新环境中需要安装的工具包。
例如,当我安装了 Python3 版本的 Anaconda 后,默认的 root 环境自然是 Python3,但是我还需要创建一个 Python 2 的环境来运行旧版本的 Python 代码,最好还安装了 pandas 包,于是我们运行以下命令来创建:
conda create -n py2 python=2.7 pandas
细心的你一定会发现,py2 环境中不仅安装了 pandas,还安装了 numpy 等一系列 packages,这就是使用 conda 的方便之处,它会自动为你安装相应的依赖包,而不需要你一个个手动安装。
8、进入虚拟环境
source activate env_name
9、退出虚拟环境
source deactivate
10、删除名为 env_name 的环境
conda env remove -n env_name
11、显示所有的环境:
conda env list
12、当分享代码的时候,同时也需要将运行环境分享给大家,执行如下命令可以将当前环境下的 package 信息存入名为 environment 的 YAML 文件中
conda env export > environment.yaml
13、使用别人生成的yaml文件创建环境
conda env create -f environment.yaml
作者:喔蕾喔蕾喔蕾蕾蕾
链接:https://www.jianshu.com/p/6d7de7a00b8d
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。