【问题标题】:How to configure custom PYTHONPATH with VM and PyCharm?如何使用 VM 和 PyCharm 配置自定义 PYTHONPATH?
【发布时间】:2013-06-16 09:43:55
【问题描述】:

我正在使用带有 Python 插件的 IntelliJ 和 Remote Interpreter feature 与我的 Vagrant VM 进行通信。它正确设置远程解释器以使用我的 VM 的解释器。但是,我在我的 VM 中使用了自定义 PYTHONPATH,我希望 IntelliJ 能够识别该路径并在开发时将模块包含在该路径中。

如何配置 IntelliJ/PyCharm 的远程解释器以在 VM 上使用自定义 PYTHONPATH?

【问题讨论】:

  • 我确实遇到了这个问题,除了我有许多遵循通用方案的项目并且现在(在 Emacs 中)我动态设置了所有内容。在 Pycharm 中基于每个项目进行设置看起来像是一种负担。

标签: intellij-idea pycharm pythonpath


【解决方案1】:

您可以通过转至口译员的对话框来执行此操作。单击您正在使用的解释器,在其下方,您应该会看到两个选项卡,一个称为 Packages,另一个称为 Path。

单击路径,然后将您的虚拟机路径添加到其中。

【讨论】:

  • 当我点击远程解释器并添加一个类路径时,当我指定一个远程目录(如/home/vagrant/mydir)时它会报错。我需要在路径前加上一些东西吗?我的界面有点不同,因为我使用的是带有 Python 插件的 IntelliJ,而不是 PyCharm(如果有帮助的话)。
  • 嗯,你可以去 SSH 解释器,然后从 vagrant 文件中加载东西,这是一个选项。
【解决方案2】:

编辑 PYTHONPATH 或修复代码检查的导入解析问题的说明如下:

  1. 打开首选项(在 Mac 上,键盘快捷键是 ⌘,)。

  1. Project: Your Project Name下方左侧边栏中查找Project Structure

  2. 在右侧边栏添加或删除模块

编辑:我已更新 PyCharm 4.5 的屏幕截图

【讨论】:

  • 这仍然适用吗?我应该有最新的 PyCharm 专业,但我错过了很多这些类别......包括项目结构!但是谢谢你发布这个!!!
  • 您好,我更新了最新版本 PyCharm 4.5 的屏幕截图。看起来他们重新组织了侧边栏中的设置。
  • 实际上,我非常感谢您。我弄乱了“默认设置”而不是项目设置。您在这里的回答帮助我意识到这一点,然后我解决了许多差异并且它起作用了。谢谢!
  • 有没有办法在全球范围内做到这一点?将 /Library/Python/2.7/site-packages 和 /usr/local/lib/python2.7/site-packages 添加到我打开的每个项目中。
  • 是的@jeremyjjbrown,我相信您可以通过单击“项目解释器”并选择具有所需站点包的解释器路径来做到这一点。这个问题只是回答让他们的项目可以使用项目特定的包。你甚至可以使用 requirements.txt 将你所有的 deps 项目添加到 pycharm 中。
【解决方案3】:

对于 PyCharm 5(或 2016.1),您可以:

  1. 选择首选项>项目解释器
  2. 解释器选择器右侧有一个“...”按钮,点击它
  3. 选择“更多...”
  4. 弹出一个新的“项目解释器”窗口
  5. 选择最右边的按钮(名为“显示所选解释器的路径”)
  6. 弹出“解释器路径”窗口
  7. 点击“+”按钮>选择你想要的PYTHONPATH目录(包含python模块的文件夹)并点击OK
  8. 完成!尽情享受吧!

【讨论】:

  • 这是我在我的项目中所做的,太烦人了。我有项目 A ,项目通用,项目测试。为了在项目测试下运行单元测试,我添加了项目依赖项,因此项目测试依赖于项目 A 和 common,但我仍然需要手动将 A 和 common 中的文件夹添加到 PYTHONPATH 中。
  • 这会将目录添加到该解释器的全局 PYTHONPATH 中,对吗?不只是项目?
  • @Ray 是的,似乎它会改变全局解释器设置。但是我们可以为不同的项目使用不同的virtualenv,并为它们设置不同的PYTHONPATH。
  • 请注意,您必须先将解释器设置为项目的解释器,否则最左边的按钮将被禁用
  • 在 OSX 上,Cmd+Shift+Period 在选择对话框中显示隐藏文件夹(例如 /usr) - 因为似乎没有办法只输入路径。
【解决方案4】:

在pycharm 5中遵循这个, https://www.jetbrains.com/pycharm/help/configuring-python-interpreter-for-a-project.html

1)打开设置对话框,点击项目解释器页面。
2)在“项目”窗格中,选择所需的项目。
3)对于选定的项目,从可用的Python解释器和虚拟环境列表中选择SDK。

【讨论】:

    【解决方案5】:

    根据我的经验,使用 PYTHONPATH 变量通常是错误的方法,因为它不能很好地与 Windows 上的 VENV 配合使用。加载时的 PYTHON 将通过将 PYTHONPATH 附加到路径来准备路径,这可能导致您精心准备的 Venv 优先获取全局站点包。

    不要使用 PYTHON 路径,而是在相关的站点包目录中包含一个 pythonpath.pth 文件(尽管要注意自定义 python 偶尔会在不同的位置查找它们,例如,enthought 会在与 python.exe 相同的目录中查找其 .pth文件)与每个虚拟环境。这将像 PYTHONPATH 一样,只是它特定于 python 安装,因此您可以为每个 python 安装/环境单独设置一个。如果您只是将 VENV 的 python 作为您的 python 安装,Pycharm 与 VENV 紧密集成。

    参见例如this SO question 了解有关 .pth 文件的更多详细信息....

    【讨论】:

      【解决方案6】:

      对我来说,解决办法是去

      Run > Edit Configuration > Defaults > Python
      

      然后管理

      • “将内容根添加到 PYTHONPATH”和
      • “将源根目录添加到 PYTHONPATH”

      复选框,以及设置“工作目录”字段。

      如果您已经设置了自己的运行/调试配置,那么您可能需要转到

      Run > Edit Configuration > Python > [Whatever you called your config]
      

      并在那里进行编辑。

      我的问题是我想将我的整个存储库包含在我的 PyCharm 2016.2 项目中,但只有一个子文件夹是实际的 python 源代码根目录。我通过右键单击文件夹将其添加为“源根”

      Mark directory as > Source Root
      

      然后在运行/调试配置菜单中取消选中“将内容根目录添加到 PYTHONPATH”并选中“将源根目录添加到 PYTHONPATH”。然后我通过执行以下操作检查了文件夹路径:

      import sys
      logger.info(sys.path)
      

      这个输出:

      [
          '/usr/local/my_project_root/my_sources_root', 
          '/usr/local/my_project_root/my_sources_root', 
          '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
          '/usr/lib/python3.4/lib-dynload', 
          '/usr/local/lib/python3.4/dist-packages', 
          '/usr/lib/python3/dist-packages'
      ]
      

      但是,如果没有它所说的修复:

      [
          '/usr/local/my_project_root/my_sources_root', 
          '/usr/local/my_project_root',                   <-- NOT WANTED
          '/usr/lib/python3.4', 
          '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
          '/usr/lib/python3.4/lib-dynload', 
          '/usr/local/lib/python3.4/dist-packages', 
          '/usr/lib/python3/dist-packages'
      ]
      

      这意味着我得到了项目根文件夹。这弄乱了我的路径。

      【讨论】:

      • 谢谢,我不是 Python 专家,一直想知道如何查看我可以到达的导入路径! (那个sys.path部分)
      • 这并不理想,因为需要更新每个运行配置。
      • @javadba 如果您希望它适用于所有配置,请转至Run &gt; Edit Configuration &gt; Templates &gt; Python
      • @AndréC.Andersen 谢谢!我以前什至从未看过 模板
      【解决方案7】:

      在 Intellij v2017.2 中,您可以访问:

      run &gt; edit configurations &gt; click ... next to the field 'Environment variables' &gt; click the green + sign

      名称= PYTHONPATH

      值= your_python_path

      【讨论】:

        【解决方案8】:

        这是通过 PyCharm Community 2019.1 完成的

        1. 转到项目设置
        2. 转到项目结构并右键单击要添加的目录,然后单击“源”

        这应该将目录添加到您的 pythonpath

        【讨论】:

          【解决方案9】:

          为更新版本的 Pycharm(例如 2019.2)提供了正确答案 phil 的更新。

          转到文件>设置并找到您的项目,然后选择Project Interpreter。现在单击所选项目解释器右侧带有 cog 的按钮(以前是 ...)。

          从下拉菜单中选择全部显示...,然后在打开的对话框中单击包含一个文件夹和两个子文件夹的图标。

          您会看到一个包含当前解释器路径的对话框,单击 + 以添加更多。

          【讨论】:

          • 谢谢!!!我和一位同事一直在努力将他的环境设置为与我的环境相匹配,我记得执行这些步骤,但我有一条重要的路径(甚至说“添加按用户”)。
          【解决方案10】:

          给定解释器的 PYTHONPATH 的最新 12/2019 选择。

          【讨论】:

            【解决方案11】:

            Pycharm 2020.3.3 CE ZorinOS(Linux) 文件>设置>项目结构>{选择文件夹}>标记为源(蓝色文件夹图标)>应用

            验证:

            import sys
            print(sys.path)
            

            应在此处列出所选路径。

            【讨论】:

              猜你喜欢
              • 2015-04-04
              • 1970-01-01
              • 2018-01-09
              • 2013-09-07
              • 2023-01-27
              • 2012-01-24
              • 1970-01-01
              • 2020-02-25
              相关资源
              最近更新 更多