018-virtualenv创建 python2/3虚拟环境安装与使用注意事项

一、安装虚拟环境的命令:

# 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的版本

猜你喜欢

转载自blog.csdn.net/mmmmmCJP/article/details/112541579