Δημοσιεύτηκε: 22 Φεβ 2012, 20:15
από Ilias95
Έχω την παρακάτω δομή φακέλων:
Κώδικας: Επιλογή όλων
├── 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