在日常的研究工作里,由于不同的人不同的需求,我们会安装很多版本的Python,安装很多不同版本的模块,再加上pip工具管理器的版本混乱问题。这就使得很多人在Python的环境管理上产生极大的混乱。
通常每个项目,甚至项目不同阶段的版本,需要不同的Python解释器和依赖库。为了清晰明了,安全可靠的管理这些环境,需要为每个项目或每个应用各自建立一套“独立、隔离”的Python运行环境。
virtualenv就是用来为每一个项目创建一套“独立隔离”的Python运行环境的工具。下面介绍在ubuntu16.04下安装和使用虚拟环境的方法步骤:
1.安装虚拟环境并创建虚拟环境目录
ctrl+alt+t 打开 terminal 输入:
sudo pip install virtualenv
sudo pip install virtualenvwrapper
mkdir virtual_project
2.系统配置
此处一开始按照教程输入如下命令:
sudo gedit ~/.bashrc
在bashrc中,加入
export WORKON_HOME=$HOME/virtual_project #所有虚拟环境存储的目录
source /usr/local/bin/virtualenvwrapper.sh
保存后关闭,再输入
source ~/.bashrc
但出现错误:
launcelot@Launcelot-PC:~$ source ~/.bashrc
/home/launcelot/anaconda3/bin/python: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/home/launcelot/anaconda3/bin/python and that PATH is
set properly.
查阅其他教程,修改在bashrc中加入的命令:
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
export WORKON_HOME=$HOME/virtual_project
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
fi
然后source ~/.bashrc正确执行
3.虚拟环境的常规操作
创建虚拟环境
mkvirtualenv env_name # env_name为你要创建的虚拟环境的名字,创建虚拟环境需要联网
创建指定python版本的虚拟环境
mkvirtualenv -p /usr/bin/python3 env_name
mkvirtualenv -p /usr/bin/python2 env_name
运行环境
workon env_name
workon + 两次tab键可以显示所有的虚拟环境
退出虚拟环境
deactivate
删除虚拟环境
rmvirtualenv env_name
创建mic项目和运行环境mic
mkproject mic
创建临时运行环境
mktmpenv
列出可用的运行环境
lsvirtualenv
列出当前环境安装了的包
lssitepackages
4.日常使用
当开始一个新的项目时:
首先创建一个新的虚拟环境
mkvirtualenv env_name
然后运行这个环境
workon env_name
运行成功后,此时命令行的前缀会增加当前虚拟环境的名称
接着你在命令行的所有指令操作都只会在该虚拟环境下进行,不会影响系统和其他环境
且在虚拟环境中,无需sudo权限即可使用 pip 来进行包的管理。
操作完毕后,记得退出虚拟环境
deactivate
参考博客:
https://blog.csdn.net/Emperor_CJ/article/details/78603026
https://blog.csdn.net/weixin_42057852/article/details/80759407