一、虚拟环境安装
虚拟环境是真实python环境的复制版本,主要为了解决同一台机器上不同项目依赖相同包的不同版本问题。
1)安装虚拟环境
pip install virtualenv
注:命令前不能用sudo
2)安装虚拟环境扩展包
pip install virtualenvwrapper
注:命令前不能用sudo
3)创建用来存放虚拟环境的目录
//家目录下运行
mkdir .virtualenvs
//非家目录下运行
mkdir ~/.virtualenvs
注:~表示家目录;/表示根目录
3)编辑家目录下面的.bashrc文件,添加下面两行内容
//打开.bashrc文件命令
//vi ~/.bashrc
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=~/.local/bin/virtualenv
source ~/.local/bin/virtualenvwrapper.sh
注:ubuntu18及以上版本,virtualenvwrapper.sh被安装到了家目录下的.local/bin/中,非原来的/usr/local/bin/中
4)运行.bashrc,使其生效
//家目录下运行
source .bashrc
//非家目录下运行
//source ~/.bashrc
二、虚拟环境使用
1)创建虚拟环境
//创建pyhton2的虚拟环境
mkvirtualenv demo
//创建python3的虚拟环境
mkvitrualenv -p python3 demo
注:此时会在家目录下创建一个demo文件夹
2)退出虚拟环境
deactivate
3)重新进入虚拟环境
//仅有一个虚拟环境时,一次tab键即可补全当前虚拟环境名称
//不只一个虚拟环境时,两次tab键可以显示所有的虚拟环境名称
workon+tab
4)虚拟环境中安装包
pip install 包名
//pip install 包名==版本号
5)查看虚拟环境中的包
pip list
//pip freeze
三、可能遇到的问题
1)如果未添加“export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3”,运行source ~/.bashrc时出现以下问题
usr@ubuntu:~$ source .bashrc
Command '' not found, but can be installed with:
sudo apt install mailutils-mh # version 1:3.7-2.1, or
sudo apt install meshio-tools # version 4.0.4-1
sudo apt install mmh # version 0.4-2
sudo apt install nmh # version 1.7.1-6
sudo apt install termtris # version 1.3-1
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= and that PATH is
set properly.
问题原因:我们配置的虚拟环境是python3下的虚拟环境,但是系统还是默认调用python2的配置文件,但是python2我们并没有配置,所以我们还需要修改配置文件。
//切换到~/.local/bin目录
cd .local/bin
//编辑virtualenvwrapper.sh文件
vi virtualenvwrapper.sh
将文中:
VIRTUALENVWRAPPER_PYTHON="$(command \which python);
改为:
VIRTUALENVWRAPPER_PYTHON="$(command \which python3)
如下图所示:
2)bash: /usr/local/bin/virtualenvwrapper.sh: No such file or directory
usr@ubuntu:~$ source .bashrc
bash: /usr/local/bin/virtualenvwrapper.sh: No such file or directory
问题原因:ubuntu18及以上版本,virtualenvwrapper.sh被安装到了家目录下的.local/bin/中,非原来的/usr/local/bin/中
3)直接用以下命令安装虚拟环境,导致虚拟环境是基于真机上的python的
sudo apt-get install virtualenv
sudo apt-get install virtualenvwrapper
问题原因:virtualenvwrapper.sh 是安装在 /usr/share/virtualenvwrapper/virtualenvwrapper.sh
配置好~/.bashrc之后,能运行virtualenv 命令,
用以下命令删除虚拟环境,
sudo apt-get remove virtualenv
sudo apt-get remove virtualenvwrapper