gpt4 book ai didi

python - 使用 VS Code Python 扩展 - 如何将 Python 模块安装到虚拟环境之外的永久位置?

转载 作者:行者123 更新时间:2023-12-04 16:45:51 25 4
gpt4 key购买 nike

我正在使用 Python 3.7 并使用 VS Code 作为我的 IDE。我安装了 Microsoft Python 扩展,并启用了 pylint用于掉毛和 pytest对于单元测试,将它们安装到系统 python37 脚本文件夹中,不存在任何虚拟环境或处于事件状态。

在这一点上,一切似乎都在起作用。我的 Python37/Scripts路径在 Windows 系统上 PATH , 并且 pytest 和 pylint 主脚本/exe 存在于那里。 VS Code 可以找到并运行我的测试,并且 lint 很好。

现在,我为我正在处理的包安装了一个虚拟环境,并将 Python 解释器更改为名为 .venv 的虚拟环境。 .

这样做之后,我安装了所有包依赖项,一切似乎都在工作,但是 VS Code 会弹出窗口,告诉我未安装 pylint 和 pytest。

如果我点击 yes要安装,它似乎使用当前默认的 python 可执行文件(在这种情况下,我的 .venv 虚拟环境中的 python 3.7)安装它们,但使用 --user将其安装给用户的选项 Python\Python37\Scripts文件夹(在 \users\user\appdata\roaming 文件夹中),即使它已经存在于我的系统中 python37\Scripts文件夹,即在路径上(安装时未激活虚拟环境)。

但是即使在扩展程序按照它想要的方式安装它们之后,我仍然无法自动发现我的测试,并且当我尝试配置测试时,它会再次尝试安装到用户目录。

——

所以,我想所有这些都是要问的 - 这是 VS Code 中的缺陷吗?

有什么方法可以在 VS Code 始终找到的永久位置安装我想要使用的标准 Python 工具,还是必须将每个工具(例如 pylint 和 pytest)重新安装到我设置的每个虚拟环境中?

如果我手动将这些包安装到虚拟环境中,看起来一切正常。是将它们(以及我计划在全局范围内使用的所有其他工具)安装到每个虚拟环境中的唯一选择吗?

最佳答案

一个解决方案(但重新考虑这样做 - 见下文)
我确实找到了 pylint 的解决方案,(虽然有点笨拙)。
在全局 VS Code 设置中,对于 PyLint , 搜索 pylintpath 的 VS Code 设置然后找到下面列出的项目并填写您的用户或系统安装路径pylint .在 Windows 中,它必须采用如下所示的格式,每个路径分隔符都有双反斜杠:
enter image description here
请注意,您还可以为 pylint 输入绝对路径通过在“设置”中选择相应的选项卡,仅针对给定的工作区或文件夹。pytest 也有类似的设置。 ,这似乎以相同的方式工作。我在 pytest 发现和运行时遇到了一些“故障”(它似乎每个测试运行两次),但它似乎确实有效。

来自 Brett 的评论 - 重新思考这个策略
根据 Brett Cannon 的评论,我将切换到只在每个虚拟环境中安装我的开发包。这似乎是长期开发人员的最佳实践。
当我考虑到我可能更喜欢的标准工具可能会因包而异时,这是有道理的,例如使用不同单元测试框架或不同 linter 的公共(public)项目 - 因为该项目的所有开发人员都需要使用相同的工具来避免使用工具碰撞(即考虑简单的差异,例如间距或缩进的工作方式,不同的 linter 以不同的方式提示)。
为每个虚拟环境安装开发工具的解决方案
对此的一种解决方案是创建一个 requirements-dev.txt文件,包含你使用的所有开发工具包,可以使用 python -m pip install -r requirements-dev.txt 安装.
这提供了一种方法来获得某人在项目上工作所需的开发工具的单独列表,该列表是可分发的,但与标准用户安装要求分开。
他还建议您可以菊花链式连接需求文件。例如,requirements-dev.txt 的第一行可以 -r requirements.txt ,这将安装正常需求文件中的所有内容,然后是第一行之后的所有剩余开发需求。这将使用单个命令安装普通和开发依赖项。

关于python - 使用 VS Code Python 扩展 - 如何将 Python 模块安装到虚拟环境之外的永久位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58775312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com