本文记录Linux下使用virtualenv管理python虚拟环境.
文章目录
1. virtualenv
virtualenv通过创建一个虚拟化的python运行环境,避免版本依赖混淆.
1.1 virtualenv 安装
installation
推荐使用以下命令,安装在用户本地目录下(~/.local/bin/
).
$ pip install virtualenv==16.7.9 --user
# ~/.local/lib/python2.7/site-packages/
# or
# ~/.local/lib/python3.6/site-packages/
16.7.9 之后是 20.0.x 版本,有大幅改变,没有16.x.x 好用.
使用
sudo
权限命令,安装在系统目录下(/usr/local/bin/
)$ sudo -H pip install virtualenv==16.7.9 # /usr/local/lib/python2.7/dist-packages/ # or # /usr/local/lib/python3.6/dist-packages/
这会导致一些可能的版本冲突
添加到环境变量:
$ vim ~/.bashrc
添加以下代码
export PATH=$PATH:~/.local/bin/
激活 ~/.bashrc
$ source ~/.bashrc
1.2 virtualenv 使用
1 创建虚拟环境
创建目录venv
为虚拟python解释器的运行环境,python解释器为默认:
$ virtualenv venv
指定虚拟python解释器为python3.6,隔绝系统环境site-packages
目录,虚拟环境目录为venv3.6
$ virtualenv --no-site-packages -p python3.6 ~/venv3.6
2 激活虚拟环境
username@localhost:~$ source ~/venv/bin/activate
(venv) username@localhost:~$
或者
username@localhost:~$ source ~/venv3.6/bin/activate
(venv3.6) username@localhost:~$
3 安装packages
更新pip
(venv) $ pip install --upgrade pip
(venv) $ pip list
安装其它 packages
(venv) $ pip install tensorflow-gpu
4 退出虚拟环境
(venv) username@localhost:~$ deactivate
username@localhost:~$
1.3 virtualenv 环境迁移
virtualenv 生成的虚拟环境的路径一般是确定的,如果移动虚拟环境的目录,将导致其不可使用.
1 使用 virtualenv --relocatable
making-environments-relocatable
$ virtualenv --relocatable ENV
NOTE: ENV is the name of the virtual environment and you must run this from outside the ENV directory.
2 手动修改
修改 ENV/bin/activate
第43行, 将移动后的虚拟环境赋值给 VIRTUAL_ENV
。
修改 ENV/bin/
下的脚本的第1行, 将移动后的虚拟环境写在行首。
2. virtualenvwrapper
Linux:
Project
PyPI
Documentation
virtualenv 使用起来很麻烦,virtualenvwrapper 进一步提升效率.
2.1 virtualenvwrapper 安装
installation
virtualenvwrapper 和 virtualenv 必须安装在相同的全局 Python site-packages 下。
如果virtualenv
使用-- user
安装,用户本地目录(~/.local/bin/
).
$ pip install virtualenvwrapper --user
# ~/.local/lib/python2.7/site-packages/
# or
# ~/.local/lib/python3.6/site-packages/
如果virtualenv
使用sudo
安装,系统目录(/usr/local/bin/
)
$ sudo -H pip install virtualenvwrapper
# /usr/local/lib/python2.7/dist-packages/
# or
# /usr/local/lib/python3.6/dist-packages/
2.2 virtualenvwrapper 使用
1. shell 设置
打开 ~/.bashrc
$ vim ~/.bashrc
添加下列代码
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/project
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.6
# if installate with --user
source ~/.local/bin/virtualenvwrapper.sh
# if installate with sudo
source /usr/local/bin/virtualenvwrapper.sh
激活 ~/.bashrc
$ source ~/.bashrc
2. 创建虚拟环境
mkvirtualenv
创建新的虚拟环境
$ mkvirtualenv --no-site-packages -p python3.6 venv3.6-pt1.01
--no-site-packages
表示隔离系统包. 如果不起作用,设置环境变量PYTHONPATH=""
为空.
虚拟环境创建后自动激活
(venv3.6-pt1.01) username@localhost:~$
3. 退出虚拟环境
deactivate
退出虚拟环境
(venv3.6-pt1.01) username@localhost:~$ deactivate
username@localhost:~$
4. 激活虚拟环境
workon
列出虚拟环境或激活虚拟环境
$ workon
venv3.6-pt1.01
$ workon venv3.6-pt1.01
(venv3.6-pt1.01) $