常见虚拟环境 virtualenv 与 Anaconda使用


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
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM