参考 https://blog.csdn.net/file_data/article/details/105408938
一、查询python解释器所在路径
以下查询py3和py2的目录:
$ which python3
/usr/bin/python3
$ which python2
/usr/bin/python2
二、安装python虚拟运行环境
pip安装(有sudo权限)
$ sudo pip3 install virtualenvwrapper
$ sudo pip3 install virtualenvwrapper
pip安装(没有sudo权限)
$ pip3 install virtualenvwrapper
$ pip3 install virtualenvwrapper
上述工具装好后,需要执行以下环境变量设置。
1.创建目录用来存放虚拟环境
mkdir $HOME/.virtualenvs
2.在~/.bashrc中,最后添加这么几行:(有sudo权限)
export WORKON_HOME=$HOME/.virtualenvs VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /usr/bin/virtualenvwrapper.sh
2.在~/.bashrc中,最后添加这么几行:(没有sudo权限)
# yyq virtualenvwrapper 配置 export PATH=$HOME/.local/bin:$PATH export WORKON_HOME=$HOME/.virtualenvs VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source $HOME/.local/bin/virtualenvwrapper.sh
3.运行:
source ~/.bashrc
4.如果报错
-bash: /usr/local/bin/virtualenvwrapper.sh: No such file or directory
说明文件没在这个路径下
可以通过which 命令查看(which是用来查看当前要执行的命令所在的路径)(有sudo权限)
$ which virtualenvwrapper.sh
/usr/local/bin/virtualenvwrapper.sh
(没有sudo权限)
一般在 这个位置下
$HOME/.local/bin/
5.重新修改 ~/.bashrc内容为以下内容(有sudo权限)
export WORKON_HOME=$HOME/.virtualenvs VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /usr/local/bin/virtualenvwrapper.sh
5.重新修改 ~/.bashrc内容为以下内容(没有sudo权限)
# yyq virtualenvwrapper 配置 export PATH=$HOME/.local/bin:$PATH export WORKON_HOME=$HOME/.virtualenvs VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source $HOME/.local/bin/virtualenvwrapper.sh
6.然后重新运行以下命令
$ source ~/.bashrc
三、创建python虚拟环境
当你需要使用Python2开发项目时,建立一个Python2的虚拟环境:
$ mkvirtualenv -p /usr/bin/python2.7 env27
当你需要Python3开发时:
$ mkvirtualenv -p /usr/bin/python3.7 env37
然后可以随时切换不同的虚拟环境:
$ workon env27 # 进入Python2环境
$ workon env37 # 进入Python3环境
注意:
进入虚拟环境后,直接输入python命令后,对应的就是当前环境的Python版本.
比如:
workon env37 # python -V # Python 3.6.*
workon env27 # python -V # Python 2.9.*
另外:
不仅可以自由切换py2和py3,同一个版本下还可以配置不同的依赖,pip不同的包,来适应不同项目的需求。
更爽的是,你可以在进入虚拟环境的同时切换到项目目录,只需要编辑 $VIRTUAL_ENV/bin/postactivate 这个文件即可:
$ vim $VIRTUAL_ENV/bin/postactivate #前提是已经进入对应的虚拟环境
在文件中添加切换目录的命令:
cd /path/to/your/project
四、退出虚拟环境
deactivate