一、安装虚拟环境的命令:
# pip安装的是python2的虚拟环境创建包
sudo pip install virtualenv
sudo pip install virtualenvwrapper
二、配置环境变量:
# 1、创建⽬录⽤来存放虚拟环境
mkdir $HOME/.virtualenvs
# 2、使用打开 gedit ~/.bashrc⽂件,并添加如下:
--------------------------------------------------
# 输出(保存) 工作目录=家目录下的.virtualenvs 文件夹
export WORKON_HOME=$HOME/.virtualenvs
# 启动 创建虚拟环境源代码路径
source /usr/local/bin/virtualenvwrapper.sh
--------------------------------------------------
# 3、运⾏
# 更新配置文件
source ~/.bashrc
三、创建虚拟环境及其它
# 如果不指定python版本,默认安装的是python2的虚拟环境
mkvirtualenv flask_py2 # 创建python2的虚拟环境
mkvirtualenv -p python3 djiango_py3 # 指定创建python3的虚拟环境
# 查看虚拟环境数目
lsvirtualenv 或 workon+2次tab
# 启动/切换 虚拟环境
workon 虚拟环境名
# 退出虚拟环境
deactivate 删除当前虚拟环境flask_py2需要先退出这个环境
# 删除虚拟环境的命令
rmvirtualenv 虚拟环境名称
# 查看虚拟环境中安装的包
pip freeze 或 pip list
# 安装flask-0.10.1的包
pip install flask==0.10.1
# ⼯具包安装自动存放的位置
eg: ~/.virtualenvs/flask_py2/lib/python2.7/site-packages
四、上面的注意事项(重要)
问题:创建python3环境报错,或者在使用环境时有错误2的提示
# 报错情况1
# mkvirtualenv -p python3 djiango_py3 可能会报错如下:
RuntimeError: failed to find interpreter for Builtin discover of python_spec='python3'
--------------------------------------------------
# 报错情况2
# leonchen@hasee-VII:~$ workon flask-py2
/usr/bin/python3: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
--------------------------------------------------
# 报错情况3
# mkvirtualenv -p /usr/bin/python3 djiango_py3
RuntimeError: failed to query /usr/bin/python3 with code 1 err: 'Traceback (most recent call last):\n File "/usr/local/lib/python2.7/dist-packages/virtualenv/discovery/py_info.py", line 16, in <module>\n from distutils import dist\nImportError: cannot import name \'dist\'\n'
解决
# 安装pip3
sudo apt install pip3
# 下面是pip3自动安装的依赖包,我看有的帖子缺失下面的也有报错
dh-python libpython3-dev libpython3.6-dev python3-dev python3-distutils python3-lib2to3 python3-setuptools
python3-wheel python3.6-dev
# 然后执行下面命令即可
sudo pip3 install virtualenv virtualenvwrapper
source ~/.bashrc
---------------------------------------------------------------
virtualenvwrapper是用来管理virtualenv的扩展包,方便env虚拟环境管理。
1、将所有虚拟环境整合在一个目录下
2、管理(新增,删除,复制)虚拟环境
3、切换虚拟环境
# 所以执行python3的环境创建命令系统会报错吧。
原因分析
# 因为Ubuntu系统初始默认python2
# 当使用apt安装的pip会保存在
/usr/local/lib/python2.7/dist-packages/virtualenv/seed/embed/via_app_data
# 查看python2的启动文件和配置文件
cd /usr/bin && ls |grep python
看到如下文件:
python2 python2.7 python2.7-config python2-config
x86_64-linux-gnu-python2.7-config # python2-dev 安装的
# 而其中python3
python3 python3.6 python3.6m
------------------------------------------------------------------
cd /usr/bin/lib/python2.7/dist-packages 有安装包
cd /usr/bin/lib/python3.6/dist-packages 空的
# 这就是导致报错情况3的原因 nImportError: cannot import name \'dist\'\n'
-------------------------------------------------------------------
创建某个python版本的环境,系统需要有这个python的版本