2013-02-18 48 views
1

我试图从终端(Mac OS)运行我的一些python脚本,并且出现导入错误。 例如,如果我尝试导入主,我得到如下:谷歌应用程序引擎 - 终端脚本

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脚本?如果是这样,你怎么做/我做错了什么?

回答

4

常见问题,对我来说第一次非常沮丧。如果你开始自己去追逐所有的进口产品,那么你会得到一个似乎没有逻辑的frakenstein路径。然后,我终于阅读了GAE SDK自身如何做。您添加GAE后您PYTHONPATH你的文件的顶部试试这个:

import dev_appserver 
dev_appserver.fix_sys_path() 

祝你好运!

+0

谢谢,ckhan,修好了! – kevin 2013-02-18 01:19:03

+0

太棒了 - 这值得赞赏。 – 2014-04-18 05:33:51