私は書いたPythonスクリプトをパッケージ化して遊んでいます。サブモジュールがありますので、submodule
としましょう。フォルダ構造は次のようになります。Pythonはインストールされていないモジュールをインポートできます
cool_script/
setup.py
cool_script.py
submodule/
__init__.py
implementation.py
今、多くのpip install .
とpip install -e .
コールの後、私はsubmodule
をグローバルにインポートすることができる状況があります。私のシステムで、これは常に動作しますどんなに:
$ python3
[...]
>>> import submodule
>>> submodule.__file__
'/home/me/fake/path/cool_script/submodule/__init__.py'
しかし、私は理由を知りません。
私が作成したパッケージはもう一度アンインストールされましたが、pipはそのサブモジュールをインデックスに見つけることができませんでした。何も、私は手動でまだそこに座ったcool_script.egg-link
を削除し、いずれかのdist-のパッケージではありません:
$ ls /usr/local/lib/python3.4/dist-packages | ack cool
$ ls /usr/local/lib/python3.4/dist-packages | ack submodule
$
PYTHONPATH
することだけでなく、空である:
$ echo $PYTHONPATH
$
なぜPythonはsubmodule
の場所を知っています?どうすればわかりますか?
virtualenvにインストールされましたか?それはLinuxシステムですか? –
これは確かにLinuxシステムです。いいえ、私は地球環境でこれらの実験を行いました。私はそれが非常にばかだと分かっています。レッスンは学んだと思います。 – iFreilicht
これはダムに聞こえるかもしれませんが、リブートを試みましたか?たぶんどこかにキャッシュされているかもしれません – RunOrVeith