【问题标题】:Make VSCode use global python config, not virtual environment?让 VSCode 使用全局 python 配置,而不是虚拟环境?
【发布时间】:2018-06-10 22:59:55
【问题描述】:

我想使用 Visual Studio Code 来编辑 Python 程序。为了保持可移植性,我希望 Python 程序包含在 Python 虚拟环境中。为了保持 venv 很小,我只想安装 Python 程序需要的那些东西(并且特别不安装 VSCode 需要的东西)。

我通过在我的项目的 settings.json 文件中设置“python.pythonPath”变量来告诉 VSCode 使用哪个 venv(即我的工作区设置,而不是我的用户设置)。从我可以运行程序/调试程序的意义上说,这很好用。

VSCode 想要使用 flake8 进行一些 linting,我 100% 支持这一点 - 我非常感谢 VSCode 和 flake8 所做的 Python linting :)

然而,VSCode 通过将 flake8 库安装到我程序的虚拟环境中来实现这一点,而不是计算机范围的 Python 安装。

如何设置 VSCode 以使用虚拟环境来运行和调试程序,但将它需要的所有库(flake8、rope 等)安装到不同的/系统范围的 Python 目录中?强>

【问题讨论】:

    标签: python visual-studio-code


    【解决方案1】:

    您可以手动安装flake8 - 例如python3 -m pip install --user flake8 在您的 venv 之外 - 然后在您的个人 settings.json 文件中手动设置 path to flake8。这使您可以在为您的用户帐户安装 flake8 时从您的 venv 运行您的代码(我们不建议全局安装)。

    【讨论】:

    • 如果你不介意我问,"python.linting.flake8Path" 应该设置成什么?我找到了一个列出 c:\something\something\flake8.exe 的示例,但 pip 安装的是 Python 文件目录,而不是 .exe。将其设置为 c:\Users\Mike\AppData\Roaming\Python\Python36\site-packages\flake8 似乎也不起作用。
    • @MikeTheTall 所以 pip 将库安装在站点包中,但它会在平台上适当的位置安装 CLI。您应该能够执行pip show flake8,它将列出每个已安装的文件以及根目录。在文件列表的顶部可能会有一些位置,如../../../bin/flake8.exe。将它与Location 目录结合起来,就可以得到路径。
    • 感谢您的帮助!当我运行 pip show flake8 时列出了License: MIT Location: c:\users\mike\appdata\roaming\python\python36\site-packages Requires: mccabe, pyflakes, pycodestyle。任何地方都没有列出 .exe。 (附带问题 - 我很惊讶 pip 安装了特定于平台的可执行文件。我只期望源代码。我想这可行,但不存在安全问题等吗?)
    • 所以我做了显而易见的事情,只是在我的 Python 安装目录中搜索 flake8.exe。我找到了一个,在 flake8Path 配置设置中使用了它,它工作得很好。感谢@brett-cannon 的所有帮助!
    • 在这些可执行文件的情况下,它们只是 setuptools 为入口点生成的存根,因此它并不像您想象的那样完全是二进制文件。
    【解决方案2】:

    当我们创建虚拟环境时,会在虚拟环境文件夹中创建一个名为pyenv.cfg 的文件。在此文件中设置 include-system-site-packages = true 会导致虚拟环境使用全局站点包。

    【讨论】:

      猜你喜欢
      • 2020-08-08
      • 2019-08-29
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多