![](/img/trans.png)
[英]Google OAuth2 authentication using python-social-auth on Google App Engine failed
[英]Cannot import python-social-auth into Google App Engine's django project
我通過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
,則無法找到。 我想我仍然可以繼續在本地添加所有依賴項,但為什么不導入我的全局模塊?
謝謝!
你真的需要閱讀關於appengine的文檔和沙盒。 不是由sdk直接提供的所有內容(模塊/庫)必須包含在您的項目中。 所有這些都必須與您的代碼一起部署。
因此,您無法使用全局安裝的模塊及其依賴項。 這一切都需要在您的項目中存在(安裝或鏈接)。
我使用virtualenv --no-site-packages來安裝所有模塊及其依賴項,然后將這些位從本地站點包中符號鏈接到我的項目中的lib目錄。
我只找到了openid和六個依賴項。 實際上,由於某種原因無法讓six.py全局安裝,所以只需將副本轉儲到每個必需的目錄中。 此外,如果PY2然后導致默認導入json無聲地失敗,則遇到basetring轉換的問題,因此不得不交換到'simplejson'。 但最終,讓它運作起來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.