Δημοσιεύτηκε: 22 Φεβ 2012, 20:15
Έχω την παρακάτω δομή φακέλων:
test.py
test2.py
test3.py
Αν τρέξω το test.py με python2:
Αν τρέξω το ίδιο αρχείο με python3:
Γιατί συμβαίνει αυτό; Έχει να κάνει με το ότι η python3 οργανώνει τα .pyc αρχεία σε έναν φάκελο __pycache__;
Αν προσθέσω και print(sys.path) στις δύο περιπώσεις το path είναι διαφορετικό.
Τι πρέπει να κάνω για να το διορθώσω;
Ορίστε και τα παραπάνω αρχεία σε tarball: http://dl.dropbox.com/u/33870708/example.tar
- Κώδικας: Επιλογή όλων
├── folder
│ ├── __init__.py
│ ├── test2.py
│ └── test3.py
└── test.py
test.py
- Κώδικας: Επιλογή όλων
from folder import test2
test2.py
- Κώδικας: Επιλογή όλων
import test3
test3.py
- Κώδικας: Επιλογή όλων
print('ok')
Αν τρέξω το test.py με python2:
- Κώδικας: Επιλογή όλων
ilias@ilias-pc:~/example$ python test.py
ok
ilias@ilias-pc:~/example$
Αν τρέξω το ίδιο αρχείο με python3:
- Κώδικας: Επιλογή όλων
ilias@ilias-pc:~/example$ python3 test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
from folder import test2
File "/home/ilias/example/folder/test2.py", line 1, in <module>
import test3
ImportError: No module named test3
ilias@ilias-pc:~/example$
Γιατί συμβαίνει αυτό; Έχει να κάνει με το ότι η python3 οργανώνει τα .pyc αρχεία σε έναν φάκελο __pycache__;
Αν προσθέσω και print(sys.path) στις δύο περιπώσεις το path είναι διαφορετικό.
Τι πρέπει να κάνω για να το διορθώσω;
Ορίστε και τα παραπάνω αρχεία σε tarball: http://dl.dropbox.com/u/33870708/example.tar