2015-05-20 16 views
7

sto cercando di connettersi a Firebase da App Engine, ma sto ottenendo questo errore durante il tentativo di importare Firebase utilizzando il wrapper Python-Firebase:Collegamento a Firebase da Python Google App Engine

File "C:\_dev\PycharmProjects\myapp\project\project_handler.py", line 31, in <module> 
from firebase import firebase 
File "C:\_dev\PycharmProjects\myapp\external\firebase\__init__.py", line 3, in <module> 
from .async import process_pool 
File "C:\_dev\PycharmProjects\myapp\external\firebase\async.py", line 1, in <module> 
import multiprocessing 
File "C:\PYTHON27\lib\multiprocessing\__init__.py", line 65, in <module> 
from multiprocessing.util import SUBDEBUG, SUBWARNING 
File "C:\PYTHON27\lib\multiprocessing\util.py", line 40, in <module> 
from subprocess import _args_from_interpreter_flags 
ImportError: cannot import name _args_from_interpreter_flags 

Altro la gente sembra avere lo same issue, ma non sono riuscito a trovare la risposta da nessuna parte.

risposta

4

Il Firebase pitone di default usa il pacchetto multiprocessing per la filettatura. Per impostazione predefinita, AppEngine blocca tutte le chiamate a multiprocessing. AppEngine esegue la propria forma di multiprocessing creando code di attività e ruotando su altre istanze dell'applicazione al caricamento.

ho creato un pacchetto di python-firebase-gae per affrontare questo problema.

0

Il pacchetto pip python-firebase dipende dal pacchetto pip "requests" che non è disponibile in GAE python. Sono disponibili solo urlfetch (documenti https://cloud.google.com/appengine/docs/python/urlfetch/).

Quindi, potresti implementare il tuo codice Python per inviare richieste direttamente all'API REST di Firebase usando urlfetch ... o per renderlo riutilizzabile, tu o qualcuno potresti avere una versione di python-firebase che usa urlfetch al posto del richiede una libreria

+2

Non proprio. Puoi installare librerie di terze parti utilizzando pip in GAE. https://cloud.google.com/appengine/docs/python/tools/using-libraries-python-27#installing_a_library incluse le richieste, in realtà la libreria che @javva utilizza deve essere installata in questo modo. Il problema sembra essere la libreria Python-Firebase che utilizza la multiprocessing quando GAE non lo consente. – Ivancho

2

v'è ora un progetto python-firebase-gae che si basa su URL Fetch e non dipende da alcun pacchetto con restrizioni.