无法导入在那里

问题描述:

从命令行中我不能导入AppEngine上,这可能是一些与我的Python路径模块:无法导入在那里

$ python 
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) 
[GCC 4.5.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from google.appengine.ext import db 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "google/appengine/ext/db/__init__.py", line 98, in <module> 
    from google.appengine.api import datastore 
    File "google/appengine/api/datastore.py", line 62, in <module> 
    from google.appengine.datastore import datastore_query 
    File "google/appengine/datastore/datastore_query.py", line 64, in <module> 
    from google.appengine.datastore import datastore_index 
    File "google/appengine/datastore/datastore_index.py", line 60, in <module> 
    from google.appengine.api import validation 
    File "google/appengine/api/validation.py", line 51, in <module> 
    import yaml 
ImportError: No module named yaml 
>>> 

我不想重复安装,我想点Python解释器到缺少模块的位置。如何让解释器从命令提示符找到应用程序引擎模块?在应用程序中,这些导入工作正常。

追加:

/usr/local/google_appengine/:/usr/local/google_appengine/lib/:/usr/local/google_appengine/lib/yaml/ 

你PYTHONPATH环境变量应该做的伎俩(你的SDK位置可能不同)。

+0

有时你添加到您的PYTHONPATH顺序可以有所作为的一些库可以在错误的顺序发生冲突。还要检查你的模块是否安装了相同版本的Python。您可能已经为Python 2.6安装了它们,并且请注意在Python 2.7中安装它们。 – 2012-01-09 14:43:23

+4

我必须将yaml更改为yaml-3.10,因为@Clyde的回答提到 – dghubble 2014-11-27 11:00:58

对于appengine 1.9.6,google已经创建了一个包含yaml模块的新目录“yaml-3.10”。我在我的.bashrc文件中添加了“[appengine install directory] ​​/google_appengine/lib/yaml-3.10”到PYTHONPATH,并解决了这个问题。顺便说一句:我使用Ubuntu 14.04 LTS。

yaml未安装在您当前的设置中。 yaml包包含在lib文件夹中的google_appengine中。该文件夹中的setup.py脚本将YAML包添加到您当前的Python

cd google_appengine/lib/yaml 
sudo python setup.py install 
+0

这个答案可以通过解释为什么提问者有问题以及如何运行这些命令来解决他们的问题来改进。 – ArtOfWarfare 2014-11-17 15:51:32

+0

是更好的? – semisided1 2014-11-17 19:41:32