我有一个位于/ home / myself / workspace / Project1的项目,为此我从Python 2.7.3 Virtualenv创建了一个SDK。我已经设置了。
这个项目使用了我在可访问目录中的一些外部代码,例如/家/我/库;这个目录包含几个带代码,docs等的目录
例如,/home/myself/LIBRARY/mymodule/important_util.py中有一个模块“important_util”。
现在,我在SDK Classpath中添加了整个dir / home / myself / LIBRARY,在Editor窗口中它看起来很好。识别导入和调用,我还可以浏览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类路径的方法,我怎么能这样做?
答案 0 :(得分:15)
确保__init__.py
目录中有mymodule
:
需要
__init__.py
个文件才能让Python对待 目录包含包;这是为了防止 无意中具有通用名称的目录,例如string 隐藏稍后在模块搜索路径上发生的有效模块。在 最简单的情况,__init__.py
可以只是一个空文件,但它可以 还执行包的初始化代码或设置__all__
变量,稍后描述。 ©
更新:在IntelliJ IDEA中,其他目录应添加为模块依赖关系或配置为Libraries
(将添加到依赖关系)而不是Python SDK的Classpath
选项卡:
我已经确认此文件夹(D:\dev\lib
)已添加到PYTHONPATH
并导入有效。
答案 1 :(得分:12)
在IntelliJ 14中它有点不同,你就像模块/蛋一样:
答案 2 :(得分:1)