IT@程序员猿媛程序员

创建指定python版本的虚拟环境

2019-04-30  本文已影响51人  阿提艾斯

环境:linux
管理虚拟环境的工具有virtualenv和virtualenvwrapper

virtualenv和virtualenvwrapper的区别:

virtualenv可以帮助我们管理不同Python环境的绝好工具,它可以在系统中建立多个不同并且互相不干扰的虚拟环境。virtualenv的一个最大的缺点是每次开启虚拟环境之前要去虚拟环境所在目录下的bin目录下source activate,这就需要我们记住每个虚拟环境所在的目录。
virtualenvwrapper会统一管理虚拟环境的目录,把你所有的虚拟环境都放在一个地方,并且省去了source的步骤。

使用virtualenvwrapper管理虚拟环境

(参考资料[1])

  1. 安装virtualenvwrapper
pip install virtualenvwrapper
  1. 修改配置文件
    安装完成之后,在~/.bashrc写入以下内容,便于管理所有创建的虚拟环境。

export WORKON_HOME=~Envs
source /usr/lcoal/bin/virtualenvwrapper.sh
解释:
第一行:virtualenvwrapper存放虚拟环境的目录,其中Envs为自己取得名字,以后创建的新的虚拟环境都存放在这个文件夹下。
第二行:virtualenvwrapper会安装到python的bin目录下,所以source后的路径是python安装目录下bin/virtualenvwrapper.sh

  1. 重新启动配置文件
source ~/.bashrc    # 读入配置文件,立即生效

创建指定python版本的虚拟环境

mkvirtualenv --python=/usr/local/python3.6/bin/python3 venv_name

解释:
--python=的是你要使用的python解释器的路径,后面的是虚拟环境的名字。

常用的基本命令

列出创建的所有虚拟环境名字

workon

进入某个虚拟环境

workon xxx    #xxx为虚拟环境的名字

退出虚拟环境

deactivate

删除虚拟环境

rmvirtualenv xxx    # xxx为要删除的虚拟环境名字

创建虚拟环境报出的bug

bug1

/usr/bin/python: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
报错原因:我使用pip3安装virtualenvwrapper,我创建的虚拟环境Python解释器版本是python3.6,没有在~/.bashrc中配置virtualenvwrapper_python,于是系统自动调用默认的解释器/usr/bin/python,这里是python2.7版本,这就引起了解释器版本不一致,所以需要手动修改一下解释器版本。(https://stackoverflow.com/questions/33216679/usr-bin-python3-error-while-finding-spec-for-virtualenvwrapper-hook-loader/33239250)
我们需要在~/.bashrc文件中添加上或者修改
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3#指定python解释器
然后重新启动配置文件就不会报错了。
我也不知道我理解的对不对,如果有人看到了,可以一起讨论一下

参考资料:
[1] 温良Miner:创建指定python版本的虚拟环境
https://www.cnblogs.com/pythoner6833/p/8998543.html
[2] 可能对bug1有帮助的文档:
https://www.jianshu.com/p/922a17697534

上一篇下一篇

猜你喜欢

热点阅读