无法导入那里的模块

Nik*_*ntz 14 python google-app-engine python-2.7

从命令行我无法导入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
>>> 
Run Code Online (Sandbox Code Playgroud)

我不想重复安装,我想将Python解释器指向缺少模块的位置.如何让解释器从命令提示符中找到app引擎模块?在应用程序中,这些导入正在运行.

Woo*_*ble 14

追加:

/usr/local/google_appengine/:/usr/local/google_appengine/lib/:/usr/local/google_appengine/lib/yaml/
Run Code Online (Sandbox Code Playgroud)

到你的PYTHONPATH环境变量应该做的伎俩(你的SDK位置可能会有所不同).

  • 当我提到@ Clyde的回答时,我不得不将yaml改为yaml-3.10 (4认同)

小智 8

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


sem*_*ed1 6

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

cd google_appengine/lib/yaml
sudo python setup.py install
Run Code Online (Sandbox Code Playgroud)