2012-05-29 52 views
6

我不知道pycharm是否与该问题有关,或者它是否是noob。从其他软件包导入python模块时遇到的麻烦(pycharm给出了未解决的参考)

这是我的文件夹布局和三个代码文件的截图:

screenshot

我使用Pycharm在Windows和“my_working_directory”是我的工作目录。您可以在屏幕截图中看到,在mod1.py“from 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没有检测到任何从lib。?import?语句(给出未解析的引用)

任何人都知道这是怎么回事?这是导入包的最佳方式吗?我应该期望能够有自动完成

应该“my_working_directory”可以通过使另一初始化 .py文件制作成包

+1

认为你需要将它添加到你的python路径。你可以从main看到package1,但是当你导入mod1时,你在mod1中看不到package2,因为它在父文件夹中,而不是在package1中。 – GP89

+1

@ GP89“将它添加到你的Python路径”,什么是“它”? C:\ Users \ Robert \ PycharmProjects \ play \ my_working_directory \?也应该是我的IDE的工作,为我添加这个?或所有我的项目,我应该搞乱我的Windows路径设置在compter>属性>高级设置>环境变量 –

+4

啊,我发现在pycharm>设置>项目结构,我不得不改变项目根/播放/播放/ working_directory !!! 谢谢你帮我解决这个问题。 –

回答

2

这可能是C:??/用户/罗伯特/ PycharmProjects /播放不上你的%PYTHON_PATH%

+0

嗨雅各布,我认为你可以做些什么。我将print sys.path添加到mod1.py和main.py中。然后我运行mod1.py并记录路径。然后我运行main.py并记录路径。两个路径集的区别是:set(['C:\\ Users \\ Robert \\ PycharmProjects \\ play \\ my_working_directory \\ package1']) set(['C:\\ Users \\ Robert \ \ PycharmProjects \\在MOD1在路径1打\\ my_working_directory']) –

+0

我得到 路径1 = sys.path中 对于我: 在我,如果 “玩”: 打印我 C:\用户\罗伯特\ PycharmProjects \戏\ my_working_directory \ package1 C:\ Users \ Robert \ PycharmProjects \ play –

+0

in main。PY我得到: 因为我在路径2: 如果我 “玩”: 打印我 C:\用户\罗伯特\ PycharmProjects \游戏\ my_working_directory C:\用户\罗伯特\ PycharmProjects \玩 –