Fai la cartella della libreria visibile a tutti gli script python in diversi dir / subdir con una directory del progetto GAE

voti
1

Ho la seguente struttura di directory per il mio progetto GAE:

progetto:

  • biblioteca:
    • lib1.py
    • lib2 / x.py
    • lib2 / y.py
  • applicazioni:
    • app1 / app1.py
    • app2 / app2.py
    • app2 / async.py

come faccio a rendere la cartella della libreria visibile a qualsiasi applicazione che sarà mai creato nella app dir e le sue sottodirectory?

È pubblicato 19/02/2012 alle 05:49
dall'utente
In altre lingue...                            


2 risposte

voti
0

PYTHONPATH specifica una serie di cartelle per cominciare le ricerche per i moduli importati.

GAE aggiunge la cartella che contiene app.yaml al vostro PYTHONPATH.

Quindi, supponendo che app.yaml è nella radice di tale struttura (cioè la cartella che contiene "libreria" e "apps"), allora le tue applicazioni possono importare relativi a lì ...

  from library import lib1

  from library/lib2 import x
Risposto il 21/02/2012 a 08:37
fonte dall'utente

voti
3

In alternativa è possibile aggiungere la librarydirectory allasys.path

Creare una __init__.pyall'interno della cartella della libreria.

import os
import sys

def add_lib_path():
    lib_directory = os.path.dirname(os.path.abspath(__file__))
    if lib_directory not in sys.path:
       sys.path.insert(0, lib_directory)

In ogni file in cui si importa le librerie dalla librarycartella di aggiungere questo codice prima le istruzioni di importazione:

from lib import add_lib_path
add_lib_path()

In questo caso tutte le librerie importate si comporteranno come previsto.

Risposto il 23/10/2013 a 23:10
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more