Python虚拟环境的创建和使用
一、概要
-
如果想要再同一台主机运行、开发不同的项目,且项目的依赖有所差异。如果只有一个环境,在每次开发新的项目或者切换不同的项目时,都必须更换为对应的版本,这是一个相当麻烦的事情。
-
Python应用程序通常会使用不在标准库内的软件包和模块。应用程序有时需要特定版本的库,因为应用程序可能需要修复特定的错误,或者可以使用库的过时版本的接口编写应用程序。
-
这意味着一个Python安装可能无法满足每个应用程序的要求。如果应用程序A需要特定模块的1.0版本但应用程序B需要2.0版本,则需求存在冲突,安装版本1.0或2.0将导致某一个应用程序无法运行。为了解决这些问题,就有了虚拟环境。
1.1 真实环境或物理环境
- 我们安装的python包即是一个真实环境
1.2 虚拟环境 virtualenv
-
virtualenv是一个创建隔绝的python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用python工程所需的包。
-
是一个用于创建和管理虚拟环境的模块。
二、安装虚拟环境
假设你已经安装了python
2.1 安装
- 创建一个用于管理虚拟环境的目录,并切换到该目录下
语法:
python -m venv virtualName
- 实例:
mkdir -p D:/Virtualenv/Python37
cd D:/Virtualenv/Python37
python -m venv Django3
- 然后得到如下文件目录结构:
与物理环境不同的是,虚拟环境的python.exe在Scripts下。
三、激活
3.1 原理
-
实际上,激活就是将当前虚拟环境下的的python.exe解释器所在路径添加到最前面。相当于提高优先级。
-
如此看来,激活只需切换到改虚拟环境,在执行python即可。
3.2 Windows
执行 Scripts
下的activate.bat
。
cd D:/Virtualenv/Python37/Django/Scripts
./activate.bat
3.3 Mac/Linux
cd ...
source tutorial-env/bin/activate
四、pip包管理
4.1 pip list
- 显示当前环境安装的所有软件包。
pip list
4.2 pip show packgeName
- 显示某个软件包的信息
pip show django
4.3 pip freze
- 生成一个当前已安装的包列表,且改文件为
pip install
期望的格式。约定为requirements.txt
文件。
pip freeze > requirements.txt
4.4 pip install -r requirements.txt
- 用于安装当前项目所有必须的包。
- 其中
-r
为read,检查文件内容是否符合pip install所期望的格式。
pip install -r requirements.txt
附录
更多详细信息请参照 官方文档。
*