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`. > > Ho provato anche con l'opzione `-P --no-path-adjustment` ma niente da > fare. Il package è stato correttamente installato con `setup.py develop` > all'interno di un virtual environment. > > Alla fine ho dovuto rinominare i packages in test: > > pkg/ > ... > test/ > _foo/ > _bar/ > > Qualcuno può confermare il problema e suggerire una soluzione?
Non saprei dirti, il semplice test che ho fatto sembra funzionare. $ tree . ├── bar │ └── __init__.py ├── foo │ └── __init__.py ├── setup.py └── test ├── bar │ ├── __init__.py │ └── test_bar.py ├── foo │ ├── __init__.py │ └── test_foo.py └── __init__.py 5 directories, 8 files $ cat setup.py from setuptools import setup, find_packages setup(name="pythonpkg", version="0.1", packages=find_packages()) $ nosetests .. ---------------------------------------------------------------------- Ran 2 tests in 0.009s OK La prima cosa che ho pensato è che nose cambiasse il path corrente e, per esempio, trovandosi in test/, importasse i moduli sbalgiati. Così però non sembra dal mio test. Senza conoscere tutti i dettagli dei pacchetti le mie sono solo delle speculazioni (anche perché non conosco nose). 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. Gli import li avrei messi assoluti: from pkg.foo import ... form pkg.bar import ... from pkg.test.foo import ... e così via. Tienici informati Marco PS. Manlio che chiede aiuto in lista? Credevo che fosse un evento tanto probabile quanto 'random.random() == random.random()'. _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python