我试图在Python 2.7中获得模块/包的挂起。我在/ Users / me / dir
中有一个名为tmp.py的文件import mypackage.datamanagement.lib.models
from mypackage.datamanagement.lib.models import Order
我可以像这样运行它
$pwd #/Users/me/dir
$python tmp.py #runs fine
一切正常。
但是,如果我将tmp.py复制到包中的其他位置......
$cp tmp.py mypackage/datamanagement/scrips/
然后尝试使用来自/ Users / me / dir的$python mypackage/datamanagement/scripts/tmp.py
来运行它...
File "mypackage/datamanagement/scrips/tmp.py", line 1, in <module>
import mypackage.datamanagement.lib.models
ImportError: No module named mypackage.datamanagement.lib.models
我在所有相关目录中都有 init .py。我认为这与pythonpath有关。我是osx,如果我跑
echo $PYTHONPATH
我得到一个空白。
有人可以解释发生了什么吗? python工作目录是否由python文件的位置设置?而不是python执行的位置?
答案 0 :(得分:0)
如果您尝试使用本地Python模块,在您的情况下,&#34; lib&#34;将是你的&#34; tmp.py&#34;的目录。模块:
import os, sys
lib_path = os.path.abspath(os.path.join('..', '..', '..', 'lib'))
sys.path.append(lib_path)
import mymodule