强制venv将python的符号链接放在macOS和Windows上相同的位置

2024-03-28 23:14:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在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


Tags: 代码命令程序可执行文件herevenv链接windows
2条回答

为什么每个操作系统将venv python放在哪里都很重要?如果您正确地确保.venv不在代码库中,但确保它在.gitignore中,那么加载您的代码的人是否需要venv就无关紧要了。这是一个很好的实践,并保证无论谁在他们的python上的任何操作系统上拥有您的代码,以及您的程序需要的任何依赖项,都将被使用

如果要使用多个操作系统进行开发,请创建一个工作区或项目.vscode设置文件,其中包含要使用的python的特定设置,但还要确保项目中的.vscode目录位于.gitignore中。然后在不同的机器上为这些特定于操作系统的设置分别设置.vscode设置

两件事。第一,你不能让虚拟环境在Windows上使用bin/(参见rejected idea

第二,Python扩展正在运行一个实验,以摆脱python.pythonPath,这将解决您的冲突。有关详细信息以及如何选择加入,请参见May release blog post

相关问题 更多 >