我正在爲一個網站開發一個python GAE應用程序,我試圖讓聯邦登錄進行。Google Identity Toolkit(v3)是否與GAE/python沙箱兼容?
根據Identity Platform choosing guide,網站的最佳解決方案似乎是Google Identity Toolkit (web)。通過所有相關的文檔,我能找到然後轉移到教程,在那裏我遇到顛簸去 - 安裝identity-toolkit-python-client
方案未能與相關於CFFI庫C編譯錯誤,類似這樣的:
# python -m pip install identity-toolkit-python-client
...
gcc -pthread -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -DOPENSSL_LOAD_CONF -fPIC -I/usr/include/python2.7 -c src/cryptography/hazmat/bindings/__pycache__/_Cryptography_cffi_a269d620xd5c405b7.c -o build/temp.linux-x86_64-2.7/src/cryptography/hazmat/bindings/__pycache__/_Cryptography_cffi_a269d620xd5c405b7.o
src/cryptography/hazmat/bindings/__pycache__/_Cryptography_cffi_a269d620xd5c405b7.c:2:20: fatal error: Python.h: No such file or directory
#include <Python.h>
^
compilation terminated.
error: command 'gcc' failed with exit status 1
我設法最終在爲我的linux發行版安裝了一些特定的軟件包之後正確地安裝了這個軟件包,但是這些失敗導致了我的實際問題(這些教程非常通用,我無法發現任何有關GAE限制的提示)。
從GAE python sandbox documentation僅純Python代碼被認爲是存在於GAE應用程式:
爲Python運行時環境中的所有代碼必須是純Python和 不包括任何C擴展或其它代碼必須編譯。
我沒有看到包含在GAE SDK或其第三方庫,據我瞭解意味着我不得不install it as a 3rd party library在自己的應用程序的身份工具箱。但純Python碼限制適用於這些庫還有:
您可以將任何第三方庫添加到您的應用程序,只要它 在「純Python」中實現(無C擴展)否則 在App Engine運行時環境中起作用。
因此標題中的問題。
我錯過了什麼嗎?
謝謝。
到目前爲止,我正在使用webapp2和jinja2。
這是一個問題,而不是一個聲明:)是的,我瀏覽了谷歌支持的庫的列表,但沒有看到在那裏,我得到編譯錯誤。我正在使用webapp2。至少現在我試圖遠離複雜的框架和包裝,因爲我首先需要了解事物的基礎,另外也因爲恕我直言,增加的複雜性,依賴性,維護等的成本通常會超過它的好處。但這只是我:)反正 - 我想更多的挖掘要求。 –
+爲自動指針 –