【发布时间】:2012-06-03 14:53:22
【问题描述】:
我不知道pycharm是否与问题有关,还是我是菜鸟。
这是我的文件夹布局和三个代码文件的截图:
我在 Windows 上使用 Pycharm,“my_working_directory”是我的工作目录。您可以在屏幕截图中看到 mod1.py 中“来自 package2.mod2”的下划线表示“未解析的引用”。
当我尝试运行 mod1.py 时,我得到:
C:\Python27\python.exe C:/Users/Robert/PycharmProjects/play/my_working_directory/package1/mod1.py
Traceback (most recent call last):
File "C:/Users/Robert/PycharmProjects/play/my_working_directory/package1/mod1.py", line 1, in <module>
from package2.mod2 import SomeClass
ImportError: No module named package2.mod2
当我运行 main.py 时,我得到:
C:\Python27\python.exe C:/Users/Robert/PycharmProjects/play/my_working_directory/main.py
hi
我不明白为什么一个有效而另一个无效。
主要问题是 pycharm 没有给我自动完成功能,并且从 mod1 中它无法检测到 package2。这是一个大问题,因为 package1 是我的视图包,package2 是我的模型或 utils 或 lib 包(在大型模型视图控制器中)。 (例如https://github.com/coto/gae-boilerplate/blob/master/web/handlers.py pycharm 没有检测到任何 from lib.? import ? 语句。(给出未解决的参考)。
有人知道发生了什么吗?这是导入包的最佳方式吗?我应该期望能够自动完成吗?
是否应该通过制作另一个init.py文件将“my_working_directory”制作成一个包?
【问题讨论】:
-
认为您需要将其添加到您的 python 路径中。您可以从 main 中看到 package1,但是当您在 mod1 中导入 mod1 时,它无法从那里的导入中看到 package2,因为它在父文件夹中,而不是在 package1 中。
-
@GP89 "将它添加到你的 python 路径",什么是 "it"? C:\Users\Robert\PycharmProjects\play\my_working_directory\ ?为我添加这个也应该是我的 IDE 的工作吗?或者对于我所有的项目,我应该在 compter > properties > advanced settings > environment variables 下弄乱我的 Windows 路径设置
-
啊,我在 pycharm > 设置 > 项目结构下找到了,我不得不将项目根目录从 /play 更改为 /play/working_directory !!!非常感谢您帮助我解决这个问题。
标签: python import package importerror pycharm