虚拟环境管理

  • Post author:
  • Post category:其他



Linux

虚拟环境的使用

和其他大多数现代编程语言一样,Python对包和模块的下载、存储以及管理有其自己的一套方法。Python的包一般存在几个地方,使用


sys.path

可以查看python包和模块的存放路径

import sys
print(sys.path)
Copy

输出结果:

['', 
 '/usr/lib/python36.zip',
 '/usr/lib/python3.6',
 '/usr/lib/python3.6/lib-dynload',
 '/usr/local/lib/python3.6/dist-packages',
 '/usr/lib/python3/dist-packages'
]
Copy

这里列出了python里查找包或者模块时的所有可用路径,其中

''

表示的是当前项目的目录,一般情况下,我们需要关注的是使用

pip install

指令下载的第三方资源包。这个第三方资源包被存放在了

'/usr/local/lib/python3.6/dist-packages'

目录下,这里就带来了一个问题,当我们同时开发多个工程时,不同的工程会将第三方的包存放在相同的路径下。这就意味着,如果有两个工程依赖同一个包,但是所需要的版本却不一样,比如工程A依赖v1.0.0,而工程B依赖v2.0.0。由于Python无法根据版本来区分包的安装路径,所以这里就会发生版本冲突。

安装virtualenv

virtualenv 是一个创建隔绝的Python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。

pip install virtualenv
Copy

安装完成以后,可以使用命令快速的创建、激活虚拟环境。

cd my_project  # 进入到工程的工作目录
virtualenv .test  # 创建虚拟环境,并命名为test.此时会在my_project下多出一个test的文件夹
virtualenv -p /usr/bin/python3 .venv : 指定Python环境创建虚拟环境
source .test/bin/activate # 激活虚拟环境。此时,如果使用pip install安装的插件,都会被安装到当前虚拟环境
pip install flask  # 测试安装flask. flask会被安装到当前虚拟环境,而不是全局环境
deactive : 退出虚拟环境
Copy

安装virtualenvwrapper

安装virtualenv以后,已经可以创建和激活虚拟环境了,但是使用起来却不是那么的方便。我们可以在安装一个virtualenvwrapper工具,它可以更加方便的帮我们管理虚拟环境。

pip install virtualenvwrapper
Copy

安装完成以后,在~/.bashrc文件下添加以下内容:

export WORKON_HOME=~/.envs
source /usr/local/bin/virtualenvwrapper.sh
Copy

保存以后,再执行以下指令:

source ~/.bashrc
Copy

下面我们就可以很方便的管理虚拟环境了。

mkvirtualenv test  # 创建并切换到test虚拟环境
deactivate  # 离开test虚拟环境
rmvirtualenv test # 删除test虚拟环境
workon demo # 切换到demo虚拟环境
Copy

注意:若是pip3安装的virtualenv且pip3的软链接指向新安装的python3.7

1.在/usr/bin下面创建virtualenv的软连接
ln -s /usr/local/src/python37/bin/virtualenv virtualenv


2.在~/.bashrc中添加即可

export WORKON_HOME=~/.envs
source /usr/local/src/python37/bin/virtualenvwrapper.sh
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

(虚拟环境默认创建在~/.envs的文件夹中)



版权声明:本文为qq_39457834原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。