Python 虚拟环境

发布于 2021-04-10 12:37:44 字数 3832 浏览 1163 评论 0

动态语言中 Ruby、Python 都有自己的虚拟环境,通过创建虚拟环境能够使不同的项目之间的运行环境保持独立性而相互不受影响。例如项目A依赖 Django1.4,而项目 B 依赖 Django1.5,这时它就能解决此类问题。Ruby 有 Vagrant,Python 有 virtualenv,本文讨论 Python 虚拟环境。

virtualenv 可用于创建独立的 Python 环境,它会创建一个包含项目所必须要的执行文件。

安装

$ pip install virtualenv

使用方法

$ cd my_project_folder
$ virtualenv venv 

如创建名为 ENV 的虚拟环境

$ virtualenv ENV

执行完命令后它会在当前目录下创建文件夹,这个文件夹包含一些Python执行文件,以及pip副本用于安装其他的packges。

.
├── bin
│   ├── activate
│   ├── activate.csh
│   ├── activate.fish
│   ├── activate_this.py
│   ├── easy_install
│   ├── easy_install-3.5
│   ├── pip
│   ├── pip3
│   ├── pip3.5
│   ├── python -> python3
│   ├── python3
│   ├── python3.5 -> python3
│   └── wheel
├── include
│   └── python3.5m -> /Library/Frameworks/Python.framework/Versions/3.5/include/python3.5m
└── lib
    └── python3.5

此外在创建env的时候可以选择Python解释器,例如:

$ virtualenv -p /usr/local/bin/python3 venv

默认情况下,虚拟环境会依赖系统环境中的 site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages 建立虚拟环境

virtualenv --no-site-packages [虚拟环境名称]

启动虚拟环境

cd ENV
source ./bin/activate

注意此时命令行会多一个 (ENV),ENV 为虚拟环境名称,接下来所有模块都只会安装到这个虚拟的环境中去。

退出虚拟环境

$ deactivate

如果想删除虚拟环境,那么直接运行rm -rf venv/命令即可。

在虚拟环境安装 Python packages

Virtualenv 附带有 pip 安装工具,因此需要安装的 packages 可以直接运行:

pip install [套件名称]

如果没有启动虚拟环境,系统也安装了 pip 工具,那么 packages 将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:

export PIP_REQUIRE_VIRTUALENV=true

如果在没开启虚拟环境时运行 pip,就会提示错误:Could not find an activated virtualenv (required).

Virtualenvwrapper

Virtaulenvwrapper 是 virtualenv 的扩展包,用于更方便管理虚拟环境,它可以做:

  1. 将所有虚拟环境整合在一个目录下
  2. 管理(新增,删除,复制)虚拟环境
  3. 切换虚拟环境

安装(确保virtualenv已经安装)

$ pip install virtualenvwrapper

此时还不能使用 virtualenvwrapper,默认 virtualenvwrapper 安装在 /usr/local/bin 下面,实际上你需要运行virtualenvwrapper.sh文件才行,先别急,打开这个文件看看,里面有安装步骤,我们照着操作把环境设置好。

1、创建目录用来存放虚拟环境

 mkdir $HOME/Envs

2、编辑 ~/.zshrc 或 ~/.bashrc(根据你使用shell类型决定)

 export WORKON_HOME=$HOME/Envs
 source /usr/local/bin/virtualenvwrapper.sh

3、运行:

$ source ~/.zshrc

此时 virtualenvwrapper 就可以使用了。virtualenvwrapper 的基本使用方式:

列出虚拟环境列表

 workon 或者 lsvirtualenv

新建虚拟环境

 mkvirtualenv [虚拟环境名称]

启动/切换虚拟环境

 workon [虚拟环境名称]

删除虚拟环境

 rmvirtualenv [虚拟环境名称]

离开虚拟环境,和virutalenv一样的命令

 deactivate

参考

http://www.virtualenv.org/en/latest/
http://stackoverflow.com/questions/11372221/virtualenvwrapper-not-found
http://www.openfoundry.org/tw/tech-column/8516-pythons-virtual-environment-and-multi-version-programming-tools-virtualenv-and-pythonbrew
http://virtualenvwrapper.readthedocs.org/en/latest/index.html

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文