于Ubuntu中搭建Python虚拟环境 初探

本文属于在参考了一些资料且实操之后的个人理解,如果有误,欢迎大家指正。
首先我用的是VMware12和Ubuntu-16.04.5。这个版本的Linux系统一般装好之后默认就自带了Py2和Py3。

1.1.安装virtualenv

sudo apt-get install python-virtualenv

这里提一下virtualenvwrapper。这个其实就是对使用virtualenv的命令进行了一些封装,可以令我们在使用virtualenv的命令更加方便(当然还有些别的区别)。
此处先不安装virtualenvwrapper。

1.2.创建Python2虚拟环境

先cd进你要安装虚拟环境的位置,我是建立在 home/你的名字 的路径下。
你可以使用 pwd 来查看你现在所处的路径。
建立虚拟环境命令如下:

virtualenv -p /usr/bin/python2 py2env

解释下上面命令的参数。

1. -p指的是path的简写。
2. /usr/bin/python2指的是你的python2的位置。在我的环境下,py2默认安装位置就是在/usr/bin/下,你可以去/usr/bin/下寻找是否存在python2。
3. py2env则是你虚拟环境的命名。

注:如果你的python2的位置不是在上面那个路径,可以使用下面的命令来寻找。

whereis python2

另:若要在别的路径下建立虚拟环境,报OSError: [Errno 13] Permission denied:错误,则在命令前加上sudo即可。

sudo virtualenv -p /usr/bin/python2 py2env

这样py2虚拟环境就创建好了,你可以去之前cd到的那个路径下(我的路径就是 home/你的名字 下)查看。创建成功的话就会多出一个py2env的文件夹,这里存放的就是你的py2的虚拟独立环境。

1.3.创建Python3虚拟环境

其实只要理解了上面创建虚拟环境的命令的参数的含义,那么创建py3虚拟环境的命令就很简单了。

virtualenv -p /usr/bin/python3 py3env

同理,/usr/bin/python3是我的环境下python3的默认安装位置。然后创建成功的话,在当前路径下也会多出一个py3env的文件夹。此处存放的就是你的py3的虚拟独立环境。

1.4.进入你创建的虚拟环境

以进入py2env为例:

lhh@lhh-virtual-machine:~$ source /home/lhh/py2env/bin/activate 

home/lhh是我创建的虚拟环境的路径。
当你看到进入了前面括号(虚拟环境名)的时候,说明你已经进入了该虚拟环境。

(py2env) lhh@lhh-virtual-machine:~/py2env/bin$ 

进入其他虚拟环境同理。source + 其他虚拟环境路径/bin/activate。其实你在虚拟环境文件夹里也能看到activate文件

1.5.退出你进入的虚拟环境

以退出py2env为例:

(py2env) lhh@lhh-virtual-machine:~/py2env/bin$ deactivate
lhh@lhh-virtual-machine:~/py2env/bin$ 

当你看到前面括号(虚拟环境名)消失了之后,就说明你已退出了该虚拟环境。

1.6.删除你创建的虚拟环境

直接删除虚拟环境文件夹即可。

1.7.完事

看到这里,已经建好了虚拟环境了。如果不想了解virtualenvwrapper的可以不接着看了,因为单看上面几步已经可以满足你的需求了。

2.1.安装virtualenvwrapper

前面也说到了,virtualenvwrapper就是对使用virtualenv的命令进行了一些封装,可以令我们在使用virtualenv的命令更加方便(当然还有些别的区别)。
先安装virtualenvwrapper。
注意:安装virtualenvwrapper前必须已经安装好了virtualenv。

sudo apt-get install virtualenvwrapper

2.2.创建虚拟环境

既然前面说了它简化了使用virtualenv的命令,那到底有什么区别呢?实际上创建虚拟环境的命令就变成了:
先建一个名为django的虚拟环境:

mkvirtualenv -p /usr/bin/python3 django

该命令参数的含义与上面用virtualenv命令参数的含义一样。不过首先命令形象了些,创建虚拟环境由virtualenv变成了mkvirtualenv。
这里有几点需要注意的:

  1. 使用该命令创建好虚拟环境后,会自动直接进入该虚拟环境。若想退出虚拟环境,还是和原来一样,使用deactivate命令即可。
  2. 用该命令创建的虚拟环境和用virtualenv命令创建的虚拟环境不一样,它不需要先cd到要安装的虚拟环境的路径。无论在什么路径下使用该命令,它都只会在 home/你的名字 (我的路径就 home/lhh)下创建 .virtualenvs 文件夹,且该文件夹是隐藏的文件夹。
  3. 你可以在左侧文件打开Home,然后按ctrl + h显示/隐藏,也可以在打开终端cd到home/你的名字路径下使用ls -a查看到隐藏文件夹 .virtualenvs。然后你进去到该隐藏文件夹中,就能看到你刚才建的虚拟环境了。

这样也能看出,用virtualenvwrapper建的虚拟环境比用virtualenv建的虚拟环境更安全。因为用virtualenv建的虚拟环境夹是可见的,而用virtualenvwrapper建的虚拟环境夹是隐藏的。

2.3.进入虚拟环境

同样,它也大大简化了virtualenv进入虚拟环境的命令。命令变成了:
以刚才建的django虚拟环境为例:

workon django

首先命令变短了,也变直观了。其次可以在任意路径下使用该命令,不像上面命令那样需要跟着路径参数。
但是需要注意的是,用virtualenv建立的虚拟环境和用virtualenvwrapper建立的虚拟环境不通用。就是说,比如上面用virtualenv建立的虚拟环境py2env,那么你用workon py2env命令进入py2env虚拟环境是不行的。
并且只用workon命令的话,可以显示出所有所创建的虚拟环境。

2.4.退出你进入的虚拟环境

一样是使用deactivate命令退出。

2.5.删除你创建的虚拟环境

使用下面命令即可:

rmvirtualenv django

同样,用virtualenv建立的虚拟环境py2env,也不能用rmvirtualenv py2env删除。该命令只能删除用virtualenvwrapper建立的虚拟环境。
注意:如果目前在虚拟环境中,需要先退出虚拟环境,然后才能使用rmvirtualenv命令。
这样比virtualenv好的地方在于,避免了直接操作删除虚拟环境文件夹。

2.6.关于2.2的补充说明

如果2.2中,使用mkvirtualenv -p /usr/bin/python3 django,显示mkvirtualenv找不到命令。此时可用以下方法解决。

# 找到virtualenvwrapper的脚本文件
whereis virtualenvwrapper
# 我的环境下默认是装在 virtualenvwrapper: /usr/share/virtualenvwrapper
# 进入该目录
cd /usr/share/virtualenvwrapper
# 可以看到该路径下是否存在 virtualenvwrapper.sh
ls
# 我的环境下有两个文件 virtualenvwrapper_lazy.sh  virtualenvwrapper.sh
# 执行脚本文件激活virtualenvwrapper
source virtualenvwrapper.sh
# 可以正常使用命令了

看别人说,这种方法每次都要执行一次才能生效。但不知道为什么,我的VMware12和Ubuntu-16.04.5环境下好像不需要,只要执行一次就下次开机也能继续用该命令。

3.总结

如果只想用virtualenv来创建虚拟环境,那么只需要看1.1——1.6即可。如果想用virtualenvwrapper来创建虚拟环境,那么只需看1.1,2.1——2.6即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值