我正在Python虚拟环境中开发一个程序。运行命令
python -m venv .venv
在Windows上,将python
符号链接置于.venv\Scripts\
中,而
python3 -m venv .venv
在macOS上,将符号链接置于.venv/bin/
。我正在使用VisualStudio代码进行开发,有一个.vscode\\settings.json
需要指向可执行文件的符号链接。比如说
{
"python.pythonPath": ".venv\\path\\to\\python",
}
如何强制venv
将符号链接放置在相同的位置,而不考虑平台
p.S.1.git会忽略.venv
文件夹,并将其包含在.gitignore
文件中,因为AFIK将其与代码库一起提供不是一个好的做法
p.S.2.为了避免XY问题,最终目标是在不同平台上拥有相同的开发环境。无论采用何种解决方案,无论使用何种包管理器,VisualStudio代码都应该能够在不同的平台上找到可执行文件的符号链接
p.S.3.我需要找到一种方法来更改__VENV_BIN_NAME__
参数
p.S.4.从here开始,一个可能的解决方案可能是使用"python.pythonPath": "${env:PYTHON_INSTALL_LOC}",
p.S.5.我问了另一个问题here
为什么每个操作系统将venv python放在哪里都很重要?如果您正确地确保.venv不在代码库中,但确保它在.gitignore中,那么加载您的代码的人是否需要venv就无关紧要了。这是一个很好的实践,并保证无论谁在他们的python上的任何操作系统上拥有您的代码,以及您的程序需要的任何依赖项,都将被使用
如果要使用多个操作系统进行开发,请创建一个工作区或项目.vscode设置文件,其中包含要使用的python的特定设置,但还要确保项目中的.vscode目录位于.gitignore中。然后在不同的机器上为这些特定于操作系统的设置分别设置.vscode设置
两件事。第一,你不能让虚拟环境在Windows上使用
bin/
(参见rejected idea)第二,Python扩展正在运行一个实验,以摆脱
python.pythonPath
,这将解决您的冲突。有关详细信息以及如何选择加入,请参见May release blog post相关问题 更多 >
编程相关推荐