Linux服务器上创建python虚拟环境virtualenv&virtualenvwrapper

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

import sys
print(sys.path)

输出结果:

 '/usr/lib/python37.zip',
 '/usr/lib/python3.7',
 '/usr/lib/python3.7/lib-dynload',
 '/usr/local/lib/python3.7/dist-packages',
 '/usr/lib/python3/dist-packages'

以上里列出了python里查找包或者模块时的所有可用路径,其中''表示的是当前项目的目录,一般情况下,我们需要关注的是使用pip install(或者pip install)指令下载的第三方资源包。这个第三方资源包被存放在了'/usr/local/lib/python3.7/dist-packages'目录下,这里就带来了一个问题,当我们同时开发多个工程时,不同的工程会将第三方的包存放在相同的路径下。这就意味着,如果有两个工程依赖同一个包,但是所需要的版本却不一样,比如工程A依赖v1.0.0,而工程B依赖v2.0.0。由于Python无法根据版本来区分包的安装路径,所以这里就会发生版本冲突。

1. 安装virtualenv

virtualenv 是一个创建隔绝的Python环境的工具(单个项目创建独立的python虚拟环境)。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。

通过以下命令安装virtualenv:

sudo pip3 install virtualenv

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

cd carlos/projects  # 进入到工程的工作目录carlos/projects
virtualenv carlospa # 创建虚拟环境,并命名为carlospa.此时会在carlos/project下多出一个carlopa的文件夹 
source carlospa
/bin/activate # 激活虚拟环境。此时,如果使用pip3 install安装的插件,都会被安装到当前虚拟环境
pip3 install flask # 测试安装flask. flask会被安装到当前虚拟环境,而不是全局环境


安装flask之前,/home/carlos/projects/carlospa/lib/python3.6/site-packages/  目录:

安装flask之后,/home/carlos/projects/carlospa/lib/python3.6/site-packages/  目录:

2. 安装virtualenvwrapper

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

sudo pip3 install virtualenvwrapper

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

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.6   #指定默认虚拟环境的python的版本
export WORKON_HOME=~/.envs   # 指定创建的虚拟环境保存在具体的文件夹
source /usr/local/bin/virtualenvwrapper.sh #执行virtualenvwrapper脚本

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

source ~/.bashrc

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

mkvirtualenv carlospa  # 创建并切换到carlospa虚拟环境, 并将其放在~/.envs文件夹内
deactivate  # 离开carlospa虚拟环境
rmvirtualenv carlospa # 删除carlospa虚拟环境
workon carlospb # 切换到carlospb虚拟环境

创建两个虚拟环境,carlospa、carlospb, 如果在carlospb安装flask之后只在carlospb环境存在,carlospa环境却不存在flask插件:

/home/carlos/.envs/carlospb/lib/python3.6/site-packages

 

 

 

 

....

posted on 2023-02-21 17:19  CARLOS_KONG  阅读(741)  评论(0编辑  收藏  举报

导航