我通过pip安装了python-social-auth
>>> import social
>>> print social
<module 'social' from '/usr/local/lib/python2.7/dist-packages/social/__init__.pyc'>
当我尝试运行我的django项目时,它抱怨没有名为social
的模块File "/media/PROJECT/project/BINGO/bingo/django/utils/importlib.py", line 35, in import_module __import__(name)
ImportError: No module named social.apps.django_app.default
将模块放在我要在本地使用的项目文件夹中,它可以工作:
>>> import os
>>> print os.getcwd()
/media/PROJECT/project/BINGO/bingo
>>> import social
>>> print social
<module 'social' from 'social/__init__.pyc'>
但是,现在无法找到它的依赖项
File "/media/PROJECT/project/BINGO/bingo/social/apps/django_app/default/models.py", line 2, in <module>
import six
ImportError: No module named six
我在全球安装了六个。如果我在本地使用六个,那么另一个依赖项openid
则无法找到。我想我仍然可以继续在本地添加所有依赖项,但为什么不导入我的全局模块?
谢谢!
答案 0 :(得分:4)
你真的需要阅读关于appengine的文档和沙盒。不是由sdk直接提供的所有内容(模块/库)必须包含在您的项目中。所有这些都必须与您的代码一起部署。
因此,您无法使用全局安装的模块及其依赖项。这一切都需要在您的项目中出现(安装或链接)。
我使用virtualenv --no-site-packages安装所有模块及其依赖项,然后将这些位从本地站点包中符号链接到我项目中的lib目录。
答案 1 :(得分:0)
我只找到了openid和六个依赖项。实际上,由于某种原因无法让six.py全局安装,所以只需将副本转储到每个必需的目录中。 此外,如果PY2然后导致默认导入json无声地失败,则遇到basetring转换的问题,因此不得不交换到'simplejson'。但最终还是让它发挥作用。