Quindi la mia struttura di directory simile a questa:Google App Engine librerie di importazione dalla cartella principale
\Project-Dir\
|- lib\
| |- flask\
| |- ...
|- module1_dir\
| |- __init__.py
| |- app.yaml
| |- app.py
| |- ...
|- module2_dir\
| |- __init__.py
| |- app.yaml
| |- app.py
| |- ...
|- ...
All'interno app.py
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../lib')))
Ho due moduli all'interno della stessa directory principale. Sono entrambi distribuiti su App Engine insieme. Condividono anche le stesse librerie. Le librerie sono tutte abbastanza robuste quindi sto provando a metterle in una directory condivisa (lib).
Sto correndo dev_appserver.py
da \Project-Dir\
e passando i due .yamls. Il mio sys.path
è impostato bene per includere la directory lib\
. Eppure la sandbox sembra ostinatamente insistere sul fatto che le librerie in lib\
non esistono.
Sono sicuro che mi manca solo qualcosa di piccolo come un cambiamento di configurazione da qualche parte. Oppure App Engine non è in grado di supportare tale configurazione?
MODIFICA: Le importazioni funzionano correttamente quando viene eseguito all'esterno di dev_appserver.py
.
Si crea un '__init __. Py' nel pacchetto python? Oppure mostra la tua directory totale. –
E come stai configurando il tuo 'sys.path', troppe volte ho visto che è semplicemente sbagliato. –