Python 虚拟环境

查看帮助

1
python -m venv -h

其中 --system-site-packages 是引用系统级别的库


创建

1
python -m venv venvdemo

创建好后会在用户目录下创建一个 venvdemo 目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
C:\Users\lyz\venvdemo>dir
驱动器 C 中的卷是 系统
卷的序列号是 5291-6C8F

C:\Users\lyz\venvdemo 的目录

2022/01/11 11:31 <DIR> .
2022/01/11 11:31 <DIR> ..
2022/01/11 11:31 <DIR> Include
2022/01/11 11:31 <DIR> Lib
2022/01/11 11:31 76 pyvenv.cfg
2022/01/11 11:39 <DIR> Scripts
1 个文件 76 字节
5 个目录 79,062,708,224 可用字节

激活

进入到Scripts文件夹下,执行activate


激活原理

在 Scripts 目录下会有 activate 激活文件 , deactivate 去激活文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
C:\Users\lyz\venvdemo\Scripts>dir
驱动器 C 中的卷是 系统
卷的序列号是 5291-6C8F

C:\Users\lyz\venvdemo\Scripts 的目录

2022/01/11 11:39 <DIR> .
2022/01/11 11:39 <DIR> ..
2022/01/11 11:31 2,268 activate
2022/01/11 11:31 962 activate.bat
2022/01/11 11:31 19,332 Activate.ps1
2022/01/11 11:31 368 deactivate.bat
2022/01/11 11:39 106,351 pip.exe
2022/01/11 11:39 106,351 pip3.8.exe
2022/01/11 11:39 106,351 pip3.exe
2022/01/11 11:31 537,776 python.exe
2022/01/11 11:31 536,752 pythonw.exe
2022/01/11 11:31 710,144 pythonw_d.exe
2022/01/11 11:31 711,168 python_d.exe
11 个文件 2,837,823 字节
2 个目录 79,060,901,888 可用字节

其中 activate 是linux下的可执行程序,

activate.bat 是windows 下的可执行程序,

activate.ps1 是powershell下的可执行程序

在对应虚拟文件夹下,可以在Scripts 文件夹下直接启动虚拟环境,具体实现方式是将虚拟环境加入到PATH

全局 PATH:

1
['', 'C:\\Python38\\python38.zip', 'C:\\Python38\\DLLs', 'C:\\Python38\\lib', 'C:\\Python38', 'C:\\Python38\\lib\\site-packages']

在虚拟环境 Scripts 下打开python 显示PATH :

1
['', 'C:\\Python38\\python38.zip', 'C:\\Python38\\DLLs', 'C:\\Python38\\lib', 'C:\\Python38', 'C:\\Users\\lyz\\venvdemo', 'C:\\Users\\lyz\\venvdemo\\lib\\site-packages']

激活实际上是把虚拟环境加入到环境变量第一条,因为系统调用是找第一个可以找见的python.exe

1
2
(venvdemo) C:\Users\lyz\venvdemo\Scripts>echo %PATH%
C:\Users\lyz\venvdemo\Scripts;C:\Python38\Scripts\;C:\Python38\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NetSarang\Xshell 7\;C:\Program Files (x86)\NetSarang\Xftp 7\;C:\Program Files\Microsoft VS Code\bin;C:\Users\lyz\AppData\Local\Microsoft\WindowsApps;C:\JetBrains\IntelliJ IDEA 2021.1\bin

在IDE中配置

只需要在IDE中选择Scripts/python.exe 即可


保存和复制虚拟环境

可以利用 pip 的 freeze 参数

1
pip freeze > requirements.txt

这样就可以导出到 requirements.txt文件中

还原时只需要

1
pip install -r requirements.txt