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
....
作者:CARLOS_CHIANG
出处:http://www.cnblogs.com/yaoyaojcy/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
posted on 2023-02-21 17:19 CARLOS_KONG 阅读(741) 评论(0) 编辑 收藏 举报