管理虚拟环境

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

1
2
import sys
print(sys.path)

输出结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
['D:\\kaifagongju\\PyCharm 2020.1.3\\plugins\\python\\helpers\\pydev',
'D:\\kaifagongju\\PyCharm 2020.1.3\\plugins\\python\\helpers\\pycharm_display',
'D:\\kaifagongju\\PyCharm 2020.1.3\\plugins\\python\\helpers\\third_party\\thriftpy',
'D:\\kaifagongju\\PyCharm 2020.1.3\\plugins\\python\\helpers\\pydev',
'C:\\Users\\L15096000421\\AppData\\Local\\Programs\\Python\\Python38\\python38.zip',
'C:\\Users\\L15096000421\\AppData\\Local\\Programs\\Python\\Python38\\DLLs',
'C:\\Users\\L15096000421\\AppData\\Local\\Programs\\Python\\Python38\\lib',
'C:\\Users\\L15096000421\\AppData\\Local\\Programs\\Python\\Python38',
'C:\\Users\\L15096000421\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages',
'D:\\kaifagongju\\PyCharm 2020.1.3\\plugins\\python\\helpers\\pycharm_matplotlib_backend',
'C:\\Users\\L15096000421\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\IPython\\extensions',
'G:\\python_workspace\\code',
'G:/python_workspace/code']

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

Linux下搭建Python虚拟环境

##安装virtualenv

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

1
sudo pip install virtualenv

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

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

##安装virtualenvwrapper

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

1
sudo pip install virtualenvwrapper

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

1
2
3
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=~/.envs
source /usr/local/bin/virtualenvwrapper.sh

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

1
source ~/.bashrc

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

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

Windows下搭建Python虚拟环境

##一. 安装 virtualenv

1
pip install virtualenv

2. 新建虚拟环境

1
virtualenv env1

用 Python3 创建虚拟环境:
virtualenv -p (python3安装路径) (虚拟环境名字)

1
virtualenv  -p C:\Users\Administrator\AppData\Local\Programs\Python\Python38\python.exe python3

(python3是虚拟环境名字)

###3. 激活虚拟环境

1)进入虚拟环境

1
cd env1

2)进入脚本目录 Scripts

1
cd  Scripts

3)运行activate.bat

1
activate.bat

###4. 退出虚拟环境

1
deactivate.bat

##二、安装使用 virtualenvwrapper

virtualenvwrapper是对 virtualenv 的功能扩展,可以管理全部的虚拟环境,用单个命令方便切换不同的虚拟环境。

####1. 安装 virtualenvwrapper

1
pip install virtualenvwrapper-win

####2. 设置workon_home环境变量

默认创建的虚拟环境的路径在 C:\Users\Administrator\Envs\

####3. 新建虚拟环境

1
mkvirtualenv env2

使用 Python3 创建虚拟环境
mkvirtualenv –python=(python3安装路径) (虚拟环境名字)

1
mkvirtualenv --python=C:\Users\Administrator\AppData\Local\Programs\Python\Python35\python.exe python35

####4. 查看安装的所有虚拟环境

1
workon

####5 . 进入虚拟环境

1
workon env2

####6. 退出虚拟环境

1
deactivate

####7.删除虚拟环境

1
rmvirtualenv 环境名

####8.列出虚拟环境

1
lsvirtualenv

####9.进入到虚拟环境目录

1
cdvirtualenv 环境名