Δημοσιεύτηκε: 28 Ιαν 2012, 19:36
@Ilias95
Βασικά το sys.path.append('..') νομίζω ότι δεν είναι και τόσο "άσχημη" λύση για ένα-δυό imports ...
Λοιπόν (από ότι κατάλαβα ότι έλεγες έχουμε και λέμε)
0) έχουμε αυτη την δομή φακέλων
και αν συγκριμένα ισχύουν
1) τα __init__.py είναι άδεια
2) εκτελείς το run_test.py μέσα από το φάκελο app , δηλαδή το sys.path[0] = /home/username/some/folder/app
3) το run_test.py κάνει from tests import test_somthing
4)και το test_something.py έχει κάποια συνάρτηση στο namespace του
5) εκτελώ από το φάκελο app το run_tests.py
και το αποτέλεσμα είναι
Μήπως δεν έχεις κάνει την __name__ σε test_something ;
αν δεν το έχεις κάνει
τότε τι ακριβώς έχεις κάνει;
Βασικά το sys.path.append('..') νομίζω ότι δεν είναι και τόσο "άσχημη" λύση για ένα-δυό imports ...
αλλα για να μας λυθούν οι απορίες ας συγκρίνουμε τι εννοεί ο καθένας.....
Λοιπόν (από ότι κατάλαβα ότι έλεγες έχουμε και λέμε)
0) έχουμε αυτη την δομή φακέλων
Spoiler: show
και αν συγκριμένα ισχύουν
1) τα __init__.py είναι άδεια
2) εκτελείς το run_test.py μέσα από το φάκελο app , δηλαδή το sys.path[0] = /home/username/some/folder/app
3) το run_test.py κάνει from tests import test_somthing
Spoiler: show
4)και το test_something.py έχει κάποια συνάρτηση στο namespace του
Spoiler: show
5) εκτελώ από το φάκελο app το run_tests.py
και το αποτέλεσμα είναι
Spoiler: show
Μήπως δεν έχεις κάνει την __name__ σε test_something ;
αν δεν το έχεις κάνει
τότε τι ακριβώς έχεις κάνει;