有时候我们不希望python各种依赖之间发生冲突,或者我们希望能将自己写的程序需要用到的依赖都放在一个目录里面,就好比nodejs的项目或者php的项目,我们执行pip安装的包也全都到当前目录才好。实际上python为我们准备了这样的模块来实现“虚拟环境”,实现目录空间限定,这个模块就叫 ‘venv’ (pip安装virtualenv 后可得此模块)。
本文主要目的是为记录自己在使用过程中的关键信息:
- 1. 首先,看一下当前的环境里是否已经有了这个模块
pip3 list --format=columns | grep virtualenv
#--format=columns加不加都行,也就是还可以这么用:
pip3 list | grep virtu
- 2. 如果不存在,我们需要先安装此模块,如果存在,请跳过本段落
[root@znl.pub ~]# pip3 install virtualenv
[root@znl.pub ~]# pip3 list --format=columns | grep virtu
virtualenv 20.17.1
- 3. 我计划创建目录 /home/znl/py3.6-jupyter.ve ,使用venv这个模块
[root@znl.pub /]# mkdir /home/znl
[root@znl.pub /]# cd /home/znl
[root@znl.pub znl]# python3.6 -m venv py3.6-jupyter.ve
[root@znl.pub znl]# cd py3.6-jupyter.ve/
[root@znl.pub py3.6-jupyter.ve]# ls -la
total 24
drwxr-xr-x 5 root root 4096 Nov 20 09:59 .
drwxr-xr-x 3 root root 4096 Nov 20 09:59 ..
drwxr-xr-x 2 root root 4096 Nov 20 09:59 bin
drwxr-xr-x 2 root root 4096 Nov 20 09:59 include
drwxr-xr-x 3 root root 4096 Nov 20 09:59 lib
lrwxrwxrwx 1 root root 3 Nov 20 09:59 lib64 -> lib
-rw-r--r-- 1 root root 69 Nov 20 09:59 pyvenv.cfg
- 4. 激活虚拟空间,第3步会在py3.6-jupyter.ve 中创建一些必要文件,实际上到第三步虚拟目录就创建好了
[root@znl.pub py3.6-jupyter.ve]# source bin/activate
(py3.6-jupyter.ve) [root@znl.pub ~]#
或加载全路径:
[root@znl.pub py3.6-jupyter.ve]# source /home/znl/py3.6-jupyter.ve/bin/activate
(py3.6-jupyter.ve) [root@znl.pub ~]#
- 5. 退出当前环境,当采用source bin/activate激活环境的时候,实际上会创建一个叫deactivate的函数
(py3.6-jupyter.ve) [root@znl.pub ~]# disactive