【问题标题】:IntelliJ Python plugin & Run classpathIntelliJ Python 插件和运行类路径
【发布时间】:2012-12-09 07:28:42
【问题描述】:

我有一个位于 /home/myself/workspace/Project1 的项目,为此我从我已设置的 Python 2.7.3 Virtualenv 创建了一个 SDK。
该项目使用我在可访问目录中的一些外部代码,例如/home/我自己/图书馆;该目录包含多个目录,其中包含代码、文档等......
例如,有一个模块“important_util”位于 /home/myself/LIBRARY/mymodule/important_util.py。

现在,我在 SDK 类路径中添加了整个目录 /home/myself/LIBRARY,在编辑器窗口中它看起来很好。导入和调用被识别,我还可以浏览 LIBRARY 目录中的代码。

问题是,当我尝试运行我的程序时,它在第一次使用 LIBRARY 导入时失败!!!

Traceback (most recent call last):
   File "/home/myself/workspace/Project1/my_program.py", line 10, in <module>
      from mymodule import important_util as ut 
      ImportError: No module named mymodule

我还尝试将相同的目录添加到 Sources 部分的“Global Libraries”部分......但没有运气。

我似乎找不到将此代码添加到 Run 类路径的方法,我该如何做到这一点?

【问题讨论】:

  • 澄清一下,我使用的是 IntelliJ IDEA Ultimate 12,Python 插件 2.10。

标签: python intellij-idea classpath pycharm


【解决方案1】:

确保您在mymodule 目录中有__init__.py

需要__init__.py 文件才能让 Python 处理 包含包的目录;这样做是为了防止 无意中使用通用名称(例如字符串)的目录 隐藏稍后出现在模块搜索路径上的有效模块。在 最简单的情况,__init__.py 可以只是一个空文件,但它可以 还执行包的初始化代码或设置__all__ 变量,稍后介绍。 ©

更新:在 IntelliJ IDEA 中,应将附加目录添加为 Module Dependencies 或配置为 Libraries(将添加到 Dependencies ) 而不是 Python SDK 的 Classpath 选项卡:

我已验证此文件夹 (D:\dev\lib) 已添加到 PYTHONPATH 并可以导入。

【讨论】:

  • 我可以确认我检查了 init.py 广告,在 /home/myself/LIBRARY/mymodule/ 和父目录中都有这样的文件。请注意,我重复一遍,编辑器窗口可以很好地找到模块:我也可以单击并导航到模块的文件。它唯一不起作用的是“运行”....还有其他想法吗?
  • 另外,我可以从终端很好地运行代码。只有 IntelliJ 没有找到“mymodule”
  • 我已经更新了答案,在 IDEA 中,PYTHONPATH 中要添加的元素配置为module dependencies。这与 PyCharm 不同,后者应将它们添加到 SDK 的 Paths 选项卡中。
【解决方案2】:

在 IntelliJ 14 中有点不同,你是这样的模块/鸡蛋:

  • 转到文件 -> 项目结构
  • 现在选择模块,然后选择“依赖项”选项卡
  • 点击“+”图标并选择“库”
  • 点击“New Library”并选择Java(我知道这很奇怪...)
  • 现在选择多个模块/鸡蛋并“确定”。
  • 从类别中选择“类”。
  • 为您的新库命名,“My Python not Java Library”
  • 最后点击“添加选择”

【讨论】:

  • 超级有用 - 与 Ultimate 2016.1 一起使用。为什么 JetBrains 不允许添加 Python 库,而是将其称为 Java?
【解决方案3】:

从 2017.1 版本开始,它已再次更改。 文件菜单中没有项目结构。写下当前程序:

  1. 转到首选项/设置。 文件 -> 设置(IDE 名称 -> macOS 的首选项)

  2. 选择构建、执行、部署

  1. 选择Python解释器

  2. 项目解释器的下拉菜单中选择,选择项目所需的Python版本路径。

  1. 单击应用并等待几分钟,让 IntelliJ 索引 python 包。

现在所有错误都应该消失了,您应该能够在外部库列表中看到项目中使用的 Python。

快乐编码。

【讨论】:

  • 这解释了如何更改 SDK/解释器,但问题是如何向 PYTHONPATH 添加一个不属于解释器目录的外部目录。此外,这个答案涉及 PyCharm,但问题是关于 IDEA 的 Python 插件 - 提到的菜单和窗口位置不一样。
  • 上面给出的过程适用于任何安装了 IDEA 的 Python 插件的 IntelliJ IDE。其实答案中添加的截图是在Goglang IDE中拍摄的。
  • 啊 - 我明白为什么有人会认为这是一个合乎逻辑的结论,但显然它是不正确的。我正在使用带有当前 Python 插件 (2017.2.172.3968.33) 的直接 IDEA CE (2017.2.4),并且“构建、执行、部署”首选项中没有“Python 解释器”条目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-23
  • 2020-06-07
  • 2018-10-08
  • 1970-01-01
相关资源
最近更新 更多