1. Python版本
1.1 弄清需要的Python版本
知道自己要运行的项目的python版本,下载对应版本并安装。
这里的版本指3.7, 3.8, 3.11等。
对于github项目,一般会在requirement.txt里明确列出。
下载安装该版本的Python。
一般来说,Python小版本的差异不会影响Python项目的运行,比如3.7.2和3.7.11不会兼容性问题。不过如果是重新安装一个新的版本Python的话,不妨顺便把小版本也控制到一致。
1.2 已安装Python版本的路径搜索
比较简单的方法是安装一个Everything,然后搜索python37,python311之类。
如果受限于Everything的非商用版权,不可以安装。
则根据我的经验,常见的路径有二:
C:\Program Files\Python\Python37
或者
C:\Users\xiaoyaopan\AppData\Local\Programs\Python\Python37
2. venv环境的创建
以管理员权限进入CMD窗口(安装Python前,已经打开的CMD窗口,请关闭,重新打开),然后运行如下代码:
D:\Program_Files\Python\Python37\python -m venv D:\PxyAI\Yolo5FaceDet
前面的运行路径“D:\Program_Files\Python\Python37\python”,请根据实际情况调整。
这个时候,应该可以在目录“D:\PxyAI\Yolo5FaceDet“下面,看到一个文件叫 pyvenv.cfg
用notepad++打开(txt也一样),应该会看到如下的5行内容(路径会根据实际情况变化)
home = D:\Program Files\Python\Python37
include-system-site-packages = false
version = 3.7.9
executable = D:\Program Files\Python\Python37\python.exe
command = D:\Program Files\Python\Python37\python.exe -m venv D:\PxyAI\Yolo5FaceDet
有时,这个文件里会只有三行内容(如果有5行,恭喜,可以直接看第3章)。
home = D:\Program Files\Python\Python37
include-system-site-packages = false
version = 3.7.9
这个情况的成因我尚不清楚,但后果我已经试验过了。在创建venv的这个环境中,不影响任何使用。但当将这个venv变换一个路径(比如拷贝到另一个电脑上),缺少的后面两行就会影响使用。鉴于使用venv的一大诉求就是整个环境可以换地方,所以建议手动将缺少的两行补上(当然路径需要自己调整)
3. venv环境的激活与lib安装
cmd窗口进入一下路径
(虚拟环境所在目录)/Scripts/bin
Linux/Mac用source activate,Windows用activate.bat激活该venv环境
如果cmd窗口显示如下:
(环境名称) bin$
说明激活成功了。
接下来就是pip安装python库了,此时安装的库,就会安装到这个虚拟环境下。
4. venv环境的移动
如果venv环境(也就是对应的文件夹)路径发生了变化,亦或者Python的安装路径都换了。则可以修改配置文件pyvenv.cfg 中的对应路径即可。
常见问题4.1
当venv环境移动后,vscode无法再调试对应的Python项目了(一般会vscode会报出“Invalid Interpreter”,或者f5的时候直接没反应),此时注意两个要点:
- .cfg文件的路径一定要有效,合理。
- 正确修改.cfg文件后,需要重启一下vscode,否则修改无法生效。
5. VsCode通过venv运行Python代码的方法
a. VsCode 用Open Folder的方式打开项目文件夹
Release模式
也就是VsCode右上方的播放键(如果布局没改过),则需要在VsCode的cmd窗口激活venv环境,激活方式和第3章相同,只是从windows的cmd窗口换到了VsCode的cmd窗口。
DeBug 模式
也就是F5大法。
使用快捷键ctrl-shift-p(同时按下ctrl-shift不要松开,再按下p)
选择venv路径下的Scripts/python.exe作为解释器
常见问题5.1:VsCode自己无权限激活虚拟环境
问题:运行界面报错:
D:\PxyAI\Yolo5FaceDet\Scripts\Activate.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
原因:在VsCode的TERMINAL窗口中,输入
get-ExecutionPolicy
会返回:Restricted,这就是报错的原因,
解决方法:在VsCode的TERMINAL窗口中,输入
set-ExecutionPolicy RemoteSigned -Scope CurrentUser
此时再输入
get-ExecutionPolicy
则返回的状态变成了:RemoteSigned。
问题就解决了。
常见问题5.2:F5调试在断点上停不下来
打开launch.json文件,打开的方法是点击一个VsCode界面上一个齿轮状的图标(如下图所示)
在 launch.json文件中添加 “justMyCode“ : false,注意在上一行尾巴添加逗号,就像C++ 枚举类 一样(如下图所示)