[Python] Conflitto import path con nose
Manlio Perillo
manlio.perillo a gmail.com
Mer 5 Ago 2015 19:43:05 CEST
2015-08-05 19:00 GMT+02:00 Marco Giusti <marco.giusti a posteo.de>:
> On Wed, Aug 05 2015, Manlio Perillo wrote:
> > Oggi per la prima volta sto lavorando ad un progetto che contiene più di
> un
> > package:
> >
> > pkg/
> > foo/
> > bar/
> > test/
> > foo/
> > bar/
> >
> > La directory `test` contiene la test suite.
> >
> > Il problema è che quando eseguo i test con nosetests, l'istruzione
> > `import foo` importa il package da `pkg/test/foo` invece che `pkg/foo`.
>
> > [...]
> > Qualcuno può confermare il problema e suggerire una soluzione?
>
> Non saprei dirti, il semplice test che ho fatto sembra funzionare.
>
Usi Python 3 o Python 2?
Io sto usando Python 2.
> La prima cosa che ho pensato è che nose cambiasse il path corrente e,
> per esempio, trovandosi in test/, importasse i moduli sbalgiati.
Lo fa.
Senza l'opzione -P aggiunge la directory che sta testando all'inizio di
sys.path.
La cosa strana e che non capisco è che ottengo il comportamento sbagliato
anche se aggiungo l'opzione.
> [...]
> Tuttavia mi chiedo perché tu non abbia organizzato differentemente il
> tuo progetto. Io avrei messo tutto sotto un unico ombrello e avrei
> creato un pacchetto principale che contenga tutti gli altri.
Perchè sono packages separati.
Sono in un unico progetto per convenienza e distutils lo supporta.
Per la cronaca uno dei due package è una applicazione Django, ed ho deciso
di spostare del codice riutilizzabile
fuori da Django ma all'interno dello stesso progetto.
> PS. Manlio che chiede aiuto in lista? Credevo che fosse un evento tanto
> probabile quanto 'random.random() == random.random()'.
Python *è* complesso!
Ciao e grazie
Manlio
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150805/678f19c7/attachment.html>
Maggiori informazioni sulla lista
Python