Also, ich spiele herum mit dem Paketieren eines Python-Skripts, das ich geschrieben habe, und es hat ein Submodul, nennen wir es submodule
. Die Ordnerstruktur sieht wie folgt aus:Python kann ein Modul importieren, das nicht installiert ist
cool_script/
setup.py
cool_script.py
submodule/
__init__.py
implementation.py
Jetzt, nach vielen pip install .
und pip install -e .
Anrufe, ich habe die Situation, in der submodule
global importiert werden können. Egal, wo auf meinem System, das funktioniert immer:
$ python3
[...]
>>> import submodule
>>> submodule.__file__
'/home/me/fake/path/cool_script/submodule/__init__.py'
Aber ich weiß nicht, warum.
Das Paket, das ich gemacht habe, wurde wieder deinstalliert, und pip kann das Submodul in seinem Index nicht finden. Es gibt nichts in dist-Pakete entweder, ich gelöscht manuell die cool_script.egg-link
, die noch saß da herum:
$ ls /usr/local/lib/python3.4/dist-packages | ack cool
$ ls /usr/local/lib/python3.4/dist-packages | ack submodule
$
Die PYTHONPATH
leer ist auch:
$ echo $PYTHONPATH
$
Warum Python kennen den Standort von submodule
? Wie kann ich es herausfinden?
Wurde es in einem virtualenv installiert? Ist es ein Linux-System? –
Dies ist ein Linux-System in der Tat, und nein, ich habe diese Experimente auf meiner globalen Umgebung. Ich weiß, das war sehr dumm. Lektion gelernt, denke ich. – iFreilicht
Das klingt vielleicht dumm, aber haben Sie versucht, neu zu starten? Vielleicht ist es irgendwo zwischengespeichert – RunOrVeith