Dies kann mein eigenes Missverständnis sein, wie Python importiert und Suchpfade funktionieren, oder es kann ein Problem beim Packen des caldav-Pakets sein.Python-Skript-Import schlägt fehl, wenn Skript in Unterverzeichnis verschoben wird
Ich habe eine virtualenv Umgebung mit dem Namen myproject
In der obersten Ebene des myproject einrichten, habe ich ein Skript test.py, die zwei Importe enthalten:
import lxml
import caldav
In diesem Verzeichnis I-Typen:
python test.py
und es funktioniert gut ohne Probleme
Jetzt Ich bewege das Skript in das Unterverzeichnis Test und führen Sie den Befehl:
python test/test.py
Der Import lxml scheint immer noch zu arbeiten. Der Import caldav schlägt mit der folgenden Ausnahme fehl:
Traceback (most recent call last):
File "test/test.py", line 34, in <module>
main()
File "test/test.py", line 29, in main
exec ("import " + modulename)
File "<string>", line 1, in <module>
File "/home/ec2-user/caldav2sql/myproject/test/caldav/__init__.py", line 3, in <module>
from davclient import DAVClient
File "/home/ec2-user/caldav2sql/myproject/test/caldav/davclient.py", line 8, in <module>
from caldav.lib import error
ImportError: No module named lib
Mache ich hier etwas falsch? Sollte ich eine Art Pfad aufstellen?
Da dies eine virtualenv Umgebung ist, existiert caldav in myproject/lib/site-packages/caldav. Ich habe versucht, PYTHONPATH an diesen Ort zu setzen, aber es hilft nicht. –
Ich habe gerade festgestellt, dass es eine falsche Installation von caldav unter dem Unterverzeichnis test gab, was alles in Unordnung brachte. Ich habe Birrreees Antwort akzeptiert, da sie mir geholfen hat, die Ursache des Problems zu finden. Vielen Dank! –