我正在尝试从终端(Mac OS)运行我的一些python脚本,并且我遇到了导入错误。 例如,如果我尝试导入main,我会得到以下内容:
ImportError: No module named webapp2
如果我尝试导入模型脚本,我会得到以下内容:
ImportError: No module named yaml
我的.bash_profile有这个PYTHONPATH设置 -
export GAE="/usr/local/google_appengine"
export PYTHONPATH="$PYTHONPATH:$GAE:$GAE/lib/django_1_4:$GAE/lib/:$GAE/lib/yaml"
我也试过这种方法:
import os
import sys
DIR_PATH = os.path.abspath(os.path.dirname(os.path.realpath(__file__)))
# ...
EXTRA_PATHS = [
DIR_PATH,
os.path.join(DIR_PATH, 'lib', 'antlr3'),
os.path.join(DIR_PATH, 'lib', 'django'),
os.path.join(DIR_PATH, 'lib', 'fancy_urllib'),
os.path.join(DIR_PATH, 'lib', 'ipaddr'),
os.path.join(DIR_PATH, 'lib', 'webob'),
os.path.join(DIR_PATH, 'lib', 'yaml', 'lib'),
]
# ...
sys.path = EXTRA_PATHS + sys.path
然后我在尝试导入其他GAE脚本之前导入该脚本,但它仍然不起作用。任何人都有他们的终端设置运行他们的GAE脚本?如果是这样,你怎么做/我做错了什么?
答案 0 :(得分:4)
常见问题,第一次对我非常沮丧。如果你开始自己追逐各种各样的进口,那么你将会看到一条似乎没有逻辑的frakenstein路径。然后我终于阅读了GAE SDK如何做到这一点。将GAE添加到PYTHONPATH
:
import dev_appserver
dev_appserver.fix_sys_path()
祝你好运!