1

我正在 Python 虚拟环境中开发一个程序。运行命令

python -m venv .venv

在 Windows 上,将python符号链接放入.venv\Scripts\while

python3 -m venv .venv

在 macOS 上将符号链接放在.venv/bin/. 我正在使用 Visual Studio Code 进行开发,并且.vscode\\settings.json需要指向可执行文件的符号链接。例如

{
    "python.pythonPath": ".venv\\path\\to\\python",
}

无论平台如何,如何强制venv将符号链接放在相同的位置?

PS1。.venv文件夹被 git 忽略并包含在.gitignore文件中,因为 AFIK 将其与代码库一起发布并不是一个好习惯。

PS2。为避免 XY 问题,最终目标是在不同平台上拥有相同的开发环境。无论解决方案如何,无论包管理器如何,Visual Studio Code 都应该能够在不同平台上找到可执行文件的符号链接。

PS3。我需要找到一种方法来更改__VENV_BIN_NAME__参数。

PS4。这里开始,一种可能的解决方案可能是"python.pythonPath": "${env:PYTHON_INSTALL_LOC}",改用。

PS5。我在这里问了另一个问题。

4

2 回答 2

2

两件事情。一,你不能bin/在Windows上使用虚拟环境(见被拒绝的想法)。

第二,Python 扩展正在运行一个实验来摆脱它,python.pythonPath这将解决你的冲突。有关详细信息以及如何选择加入,请参阅5 月发布的博客文章。

于 2020-05-25T20:48:37.327 回答
1

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

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

于 2020-05-23T12:55:28.827 回答