pythonで書いた、数字を含むリストを出力するだけのモジュールをインポートしようとしています。私が抱えている問題は、別のディレクトリからインポートできるようにしたいということです。しかし、私がこれまで読んだ答えは、私の状況ではうまくいかないようです。
たとえば、ドキュメントフォルダ内のディレクトリからprintnumbers.pyをインポートしたい場合、次のように実装することになっています。
import sys
sys.path.append('/home/jake/Documents')
import printnumbers.py
このコードの断片により、指定されたモジュールが存在しないことを通知する「インポートエラー」が発生します。ここからどこに進むべきか正確にはわかりません。パスとモジュール名のスペルが正しいことを確認するために何度もチェックしました。 「sys.path」への追加が何をするのかを正確に理解しようとしています。私が理解していることから、そのディレクトリでモジュールを検索するようにプログラムに指示しているのでしょうか。
私のかなり初心者の質問に答えてくれた人に感謝します。 pythonドキュメントが私の心の枠組みを提供していないということについてのより良い理解を探しています。
ファイルがprintnumbers.py
の場合、モジュールはprintnumbers
と呼ばれます(.py
なし)。したがって、
import printnumbers
import sys
sys.path.append('/home/jake/Documents')
'/home/jake/Documents'
の末尾にsys.path
を追加します。 sys.path
にリストされているディレクトリは、インポートステートメントによってPythonがモジュールを検索するたびに(リストされている順序で)検索されます(すでにインポートされたモジュールはsys.modules
にキャッシュされます)。 、したがってPythonは、モジュールをインポートするために常にsys.path
ディレクトリを検索する必要はありません...)
したがって、ファイル/home/jake/Documents/printnumbers.py
がある場合、import printnumbers
は、にリストされているディレクトリにprintnumbers.py
という名前の他のファイルがない場合、Pythonがそれをインポートします。 sys.path
の前に/home/jake/Documents/
。
ディレクトリをsys.path
に挿入することは、モジュールを検索するためにPythonを設定する通常の方法ではないことに注意してください。通常、PYTHONPATH環境変数に/home/jake/Documents
を追加することをお勧めします。 sys.path
には、PYTHONPATH環境変数にリストされているディレクトリが自動的に含まれます。
そしてもう1つ、ディレクトリ内の空の__ init __。pyファイルを使用して、pythonパッケージ(その場合のみPythonは、このディレクトリがPython通常のディレクトリ以外のパッケージディレクトリ)であることを認識します。したがって、別のディレクトリからそのパッケージからモジュールをインポートできます。