Ubuntu16.04下创建python的虚拟环境

为什么要使用virtualenv?

首先,virtualenv为应用提供了隔离的Python运行环境,可以解决不同应用间多版本的冲突问题。

比如,现在的电脑中一般同时具有python2和python3,系统的运行需要python2,做开发时往往需要最新的python3。而在使用工具pip时,所有第三方的包都会被安装到默认的python(一般是python2)的site-packages目录下,有时这不是我们所希望的。

这正是要用到virtualenv的场合。virtualenv会把用户指定版本的python复制到虚拟环境下,并修改相关的环境变量,使得pythonpip命令指向当前虚拟环境。用户可以在虚拟环境中任意操作,而不会对外部造成影响。

1 安装虚拟环境工具

pip3 install virtualenv
pip3 install virtualenvwrapper

2 配置

  • 创建虚拟环境的管理目录: ~表示当前用户的家目录
mkdir ~/.virtualenvs

  •  在启动文件~/.bashrc下添加虚拟环境变量:打开.bashrc文件,向其底部添加如下
export WORKON_HOME=$HOME/.virtualenvs  # 所有虚拟环境存储的目录
source /usr/local/bin/virtualenvwrapper.sh

第一行意思是指定python虚拟环境存放路径

第二行意思是使virtualenvwrapper.sh文件生效(运行virtualenvwrapper.sh) 

  • 回到shell界面,输入指令令其生效
source ~/.bashrc

  • 如果报错-bash: /usr/local/bin/virtualenvwrapper.sh: No such file or directory

 说明文件没在这个路径下,可以通过which 命令查看(which是用来查看当前要执行的命令所在的路径),修改source /usr/local/bin/virtualenvwrapper.sh

which virtualenvwrapper.sh

  • 报错:/usr/bin/python: No module named virtualenvwrapper

错误原因:Ubuntu安装了2.7和3.x两个版本的python,在安装时使用的是sudo pip3 install virtualenvwrapper
在运行的时候默认使用的是python2.x,但在python2.x中不存在对应的模块

所以,在bashrc文件里面加入如下命令即可:(注:一定要加在虚拟环境变量之前

VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

让其自动选择Python3解释器,就不会报错了!

3 查看python3目录(其他版本也可)

which python3
#我的python3是在/usr/bin/python3

4 创建python3虚拟环境

mkvirtualenv -p /usr/bin/python3 py3env

-p /usr/bin/python3指定了要复制的python的目录

py3env是存放环境的文件夹名称

5 激活虚拟环境

#使用source命令来使得环境变量修改后立即生效
source ./py3env/bin/activate

可以看到命令提示符有一个(py3env)的前缀,即表示激活成功。

此时,你的所有python、pip操作都会指向虚拟环境创建时复制的那一份python

比如再次执行which python,如图:


原来的路径是/usr/bin/python3,激活虚拟环境后是/home/test/virtualenv/py3env/bin/python3

6 退出虚拟环境

deactivate

(py3env)前缀消失,环境变量被重设为原来的。

7 Tip

切记要在工作时激活虚拟环境,结束工作后退出。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值