Come aggiungere librerie python di terze parti in Google App Engine, che non sono fornite da Google? Sto cercando di utilizzare BeautifulSoup in Google App Engine e non riesco a farlo. Ma la mia domanda è per qualsiasi libreria che voglio utilizzare in Google App Engine.Come includere librerie Python di terze parti in Google App Engine?
risposta
In realtà penso che this answer si adatti meglio qui.
Se si desidera utilizzare librerie di terze parti non incluse in this list, sarà necessario aggiungerle manualmente.
Per includere manualmente qualsiasi altra libreria, è necessario averli all'interno della directory in cui si trova lo app.yaml
. Così, per esempio, se si ha la seguente struttura:
hello
├── libs
│ └── bs4
├── hello.py
└── app.yaml
poi nel vostro hello.py
bisogna mettere queste due righe all'inizio del file:
import sys
sys.path.insert(0, 'libs')
dopo aver fatto che sarete in grado per utilizzare qualsiasi libreria di terze parti che inserirai nella directory libs
.
Ad esempio:
from bs4 import BeautifulSoup
Non riesco a farlo funzionare dopo averlo spostato in libs –
Il mio male, finalmente funziona. Grazie –
Ho ancora problemi con questo dopo aver seguito le indicazioni. Qualcosa è cambiato con GAE? –
Basta mettere BeautifulSoup nella root del vostro progetto e caricarlo tutto
Posso mettere in una cartella specifica come "lib"? –
yes manipola sys.path o usa il modulo del sito come in 'site.addsitedir ('lib') –
È sufficiente copiare la cartella che contiene la libreria che si desidera utilizzare nel progetto App Engine.
Quindi quando viene distribuito, viene caricato con l'applicazione ed è disponibile per l'uso.
MODIFICA: Jesse's answer è come ora faccio questo. Quindi fallo!
Il modo in cui ha funzionato qui è:
import sys
# sys.path.insert(0, 'libs') #"Old" way, not working for me.
sys.path.append(os.path.join(os.path.dirname(__file__), "libs")) # This works!
Poi importare normalmente:
from bs4 import BeautifulSoup
Google ha fornito un modo documentato per la dotazione di terze parti librerie nel tuo progetto GAE.
Vedere "Adding Third-party Packages to the Application" section of the Libraries in Python 2.7 docs.
Se si desidera includere ulteriori pacchetti di terze parti pure python, è possibile farlo impostando il fornitore. Il venditore consente di installare pacchetti in una sottodirectory del progetto e includerli nel codice. Per utilizzare il venditore, creare (o modificare) appengine_config.py nella radice del progetto.
from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')
E poi appena messo tutto il codice sorgente vostre librerie nel vostro lib
dir
> pip install beautifulsoup4 -t lib
Quindi la struttura di directory del progetto si presenta così:
project
- lib
- bs4
- your_code.py
Questo permetterà al i file sorgente del progetto per importare i pacchetti/moduli della lib come se fossero stati aggiunti al tuo PYTHON_PATH
. Per esempio:
# file: your_code.py
import bs4 # no need for 'from lib import bs4'
# do stuff with bs4...
Si può anche facilmente installare tutto da un file requirements.txt effettuando il seguente comando
> pip install -t lib -r requirements.txt
Questa risposta sembra essere migliore di quella accettata. Grazie Jesse! –
questo ha funzionato per me per molto tempo, ma ha iniziato a fallire inspiegabilmente. Ora sto ottenendo 'virtualenv: non posso accedere a lib: nessuna virtualenv o directory del sito' – bgenchel
Sto ottenendo la stessa cosa adesso. Strano. –
pip installare -t nome_pacchetto lib
lib: il posizione per le librerie di terze parti
Quindi sei bravo a usa questo pacchetto come una normale libreria che usi da ipython o terminale.
- 1. Librerie di terze parti in CMake
- 2. macdeployqt e librerie di terze parti
- 3. Posso scrivere parti del codice di Google App Engine in Java, altre parti in Python?
- 4. Collegamento di librerie di terze parti in VS 2015
- 5. Come allegare librerie di terze parti nella versione di rilascio
- 6. Google App Engine può utilizzare un server SMTP di terze parti?
- 7. Google App Engine Python | APP.YAML
- 8. Google App Engine librerie di importazione dalla cartella principale
- 9. Posso utilizzare le librerie scientifiche Java in Google App Engine?
- 10. API REST in Google App Engine + Python?
- 11. Corretto da GOPATH per includere le librerie App Engine da App Engine SDK?
- 12. Django's I18N con app di terze parti
- 13. Reindirizza utente in Python + Google App Engine
- 14. Come aggiungere librerie di terze parti a MinGW?
- 15. Test unità Python per Google App Engine
- 16. Collegamento di librerie di terze parti (libs.a) con NDK
- 17. oggetti di valore mappatura da librerie di terze parti
- 18. google app engine python download file
- 19. Miglior approccio Per includere file di terze parti con Symfony2
- 20. Google App Engine Launcher Python Percorso
- 21. Raccolta di messaggi da app di terze parti in Django
- 22. Google App Engine - Java o Python?
- 23. Gestione delle modifiche nelle librerie di terze parti dipendenti
- 24. Impossibile utilizzare librerie esterne per Google App Engine progetto Java
- 25. Come gestire l'eliminazione in Google App Engine (Python)
- 26. Come analizzare xml in Python su Google App Engine
- 27. Eliminazione sovraccarico globale [] non richiamato nelle librerie di terze parti
- 28. Come si modifica sys.path in Google App Engine (Python)?
- 29. Come posso importare un modulo di terze parti in Python?
- 30. Dove devo mettere le librerie di terze parti?
possibile duplicato di [Come gestisco le librerie Python di terze parti con Google App Engine? (virtualenv? pip?)] (http://stackoverflow.com/questions/4863557/how-do-i-manage-third-party-python-libraries-with-google-app-engine-virtualenv) – Wernight