2015-04-05 52 views
0

我的项目的结构为一包像这样的根导入__init__.py,导入错误试图从包

cred/ 
    LICENSE 
    setup.py 
    cred/ 
     __init__.py 
     runserver.py 
     resources/ 
      __init__.py 
      event.py 

在我cred/cred/__init__.py我有一个创建各种变量,在整个包装中使用的一些代码(如appapidb)。

我可以成功地利用from cred import app, api, dbresources文件夹中的Python文件中导入这些,但这样做from cred import app, api, dbrunserver.py当由于某种原因,我得到的,

$ python cred/runserver.py 
Traceback (most recent call last): 
    File "cred/runserver.py", line 1, in <module> 
    from cred import app, api, db, initDB 
ImportError: No module named 'cred' 

我不知道怎样做才能解决它,所以任何帮助,将不胜感激:/ ...

更新

我不知道发生了什么变化,但是当我回到工作该项目,它按预期运行。我怀疑在我的环境中有一些缓存或其他东西在搞乱它:/ ...感谢@rfkortekaas给他的时间去尝试和回答!

回答

0

因为资源不在python路径上,所以您需要将子文件夹设置为导入。

from cred.resources import app 
+0

当它是'__init __。py'文件中的cred而不是'cred/resources'中的文件? – Tehnix 2015-04-05 19:15:09

+0

您在cred.resources __init__中有一个变量。如果你想在cred.runserver中使用这个,你需要在runserver.py中从上面导入 – rfkortekaas 2015-04-06 08:28:47

+0

也许我有点清楚,这个变量是在'cred/cred/__init __。py'中设置的,而''不在'cred/cred /资源/ __ __初始化。py'。 – Tehnix 2015-04-16 17:44:54