<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2015-08-05 19:00 GMT+02:00 Marco Giusti <span dir="ltr"><<a href="mailto:marco.giusti@posteo.de" target="_blank">marco.giusti@posteo.de</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Aug 05 2015, Manlio Perillo wrote:<br>
> Oggi per la prima volta sto lavorando ad un progetto che contiene più di un<br>
> package:<br>
><br>
> pkg/<br>
>     foo/<br>
>     bar/<br>
>     test/<br>
>         foo/<br>
>         bar/<br>
><br>
> La directory `test` contiene la test suite.<br>
><br>
> Il problema è che quando eseguo i test con nosetests, l'istruzione<br>
> `import foo` importa il package da `pkg/test/foo` invece che `pkg/foo`.<br>
<br></span></blockquote><div>> [...] </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
> Qualcuno può confermare il problema e suggerire una soluzione?<br>
<br>
</span>Non saprei dirti, il semplice test che ho fatto sembra funzionare.<br></blockquote><div><br></div><div>Usi Python 3 o Python 2?</div><div>Io sto usando Python 2.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">La prima cosa che ho pensato è che nose cambiasse il path corrente e,<br>
per esempio, trovandosi in test/, importasse i moduli sbalgiati.</blockquote><div><br></div><div>Lo fa.</div><div>Senza l'opzione -P aggiunge la directory che sta testando all'inizio di sys.path.</div><div><br></div><div>La cosa strana e che non capisco è che ottengo il comportamento sbagliato anche se aggiungo l'opzione.</div><div> </div><div>> [...]</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Tuttavia mi chiedo perché tu non abbia organizzato differentemente il<br>
tuo progetto. Io avrei messo tutto sotto un unico ombrello e avrei<br>
creato un pacchetto principale che contenga tutti gli altri.</blockquote><div><br></div><div>Perchè sono packages separati.</div><div>Sono in un unico progetto per convenienza e distutils lo supporta.</div><div>Per la cronaca uno dei due package è una applicazione Django, ed ho deciso di spostare del codice riutilizzabile</div><div>fuori da Django ma all'interno dello stesso progetto.</div><div></div></div><br></div>> PS. Manlio che chiede aiuto in lista? Credevo che fosse un evento tanto<br>> probabile quanto 'random.random() == random.random()'.<br><br>Python *è* complesso!<br><br>Ciao e grazie<div>Manlio</div></div>