【发布时间】:2011-04-21 17:24:06
【问题描述】:
我有一个包含多个子包的 Python 包。
myproject/
__init__.py
models/
__init__.py
...
controllers/
__init__.py
..
scripts/
__init__.py
myscript.py
在 myproject.scripts.myscript 中,如何访问 myproject.models?我试过了
from myproject import models # No module named myproject
import models # No module named models
from .. import models # Attempted relative import in non-package
我以前必须解决这个问题,但我不记得应该怎么做。这对我来说并不直观。
【问题讨论】:
-
myscript.py的运行情况如何?你能告诉我们你的命令行吗?这将对答案产生影响。 -
试试
import myproject.models -
好的,我找到了解决方案:导入前
sys.path.append(os.path.dirname(os.path.dirname(__file__)))。不过我希望有更好的解决方案。 -
这可能与你的pythonpath有关。你想从哪里导入这个包?如果它与包不在同一位置,则必须将其添加到 pythonpath。
-
Brandon Craig Rhodes:我在 myproject/ 目录中,正在运行
python scripts/myscript.py。