Neurohazard
暮雲煙月,皓首窮經;森羅萬象,如是我聞。

virtualenv 简易使用方法

wpadmin~August 13, 2018 /Software Engineering

virtualenv 是 Python 2 的虚拟环境配置工具

Contents

Quick Start

pip install virtualenv
virtualenv <virtual_environment_name> [--no-site-packages]
virtualenv vpython2
# 开启/关闭
source bin/activate
deactivate
# 确认虚拟环境正常工作
which python
which pip

细节

安装

# 通用安装方法
pip install virtualenv

# Ubuntu/Debian/Kali
apt-get upgrade && apt-get update
apt-get install virtualenv

帮助信息

~$ virtualenv -h
Usage: virtualenv [OPTIONS] DEST_DIR

Options:
  --version             显示程序的版本号并退出
  -h, --help            显示程序的帮助信息并退出
  -v, --verbose         增强输出
  -q, --quiet           减少输出
  -p PYTHON_EXE, --python=PYTHON_EXE   Python的可执行路径(/usr/bin/python)
  --clear               清除安装的库
  --no-site-packages    给出一个干净的环境,不包含系统已安装的库
  --system-site-packages 包含系统库
  --always-copy         始终复制文件而不是符号链接。
  --relocatable         使一个现有的virtualenv环境这会修复脚本并生成所有.pth文件
  --no-setuptools       不要在新的virtualenv中安装setuptools
  --no-pip              不要在新的virtualenv中安装pip
  --no-wheel            不要在新的virtualenv中安装wheel
  --extra-search-dir=DIR 在DIR中寻找setuptools/pip
  --download            从PyPI下载预安装的软件包
  --no-download, --never-download 不要从PyPI下载预安装的软件包
  --prompt=PROMPT       为此环境提供备用提示前缀
  --setuptools          已废弃
  --distribute          已废弃
  --unzip-setuptools    已废弃

配置一个新环境

# 新建虚拟环境
virtualenv --no-site-packages -p /usr/bin/python MyNewEnv
# 使虚拟环境生效
source MyNewEnv/bin/activate
# 禁用虚拟环境
deactivate

使用 virtualenv-wrapper

打开一个新的shell,输入mkvirtualenv test 。如果你打开另外一个shell,则你就不在这个virtualenv中了,你可以通过workon test 来启动。如果你的工作完成了,可以使用deactivate 来停用。

# 安装组件
pip install virtualenvwrapper
# 新建虚拟环境
mkvirtualenv MyVenv
# 激活虚拟环境
workon MyVenv
# 停止激活虚拟环境
deactivate

requirements.txt 的管理

pip install -r requirements.txt
pip freeze > requirements.txt

PyCharm 中的设置

在 PyCharm 中使用 virtualenv
settings – Project Interpreter
在其中选择虚拟环境的目录。

参考资料

virtualenv 简易使用方法
http://blkstone.github.io/2016/04/10/virtualenv/

Leave a Reply

Your email address will not be published. Required fields are marked *