私は、各学生のための別々のフォルダにあるいくつかのpythonの提出を成績化しようとしています。これを行うには、実行したい関数f()があります。私の現在のパスがファイルの場所と同じ場合、私は単純に行うことができますサブフォルダからのPythonのインポート
import filename
filename.f()
しかし、良い方法がありますか?たとえば、のは、次のようなディレクトリ構造があるとしましょう:
main.py
student/run_this.py
私は学生のフォルダ内の「__init__.py」ファイルがある場合、私はちょうどしかし
import student.run_this
を入力することができることを知って、そのファイルがなければ、動作しません。
私が見つけたいくつかの同様の質問が
- Import module from subfolder
- How to do relative imports in Python?
- http://www.daniweb.com/software-development/python/threads/192000/import-from-a-subdirectory-of-a-directory-on-pythonpath
たが、これらのどれもが、特に満足のいく答えを与えませんでした。
それでは、 '__init __。py'ファイルの問題はどうですか? – eazar001
あなたのパスに 'student'フォルダを追加し、' run_this'をインポートします。それは他の答えがあなたにするように指示したものです。何を試しましたか?それはうまくいきませんでしたか? –
それはエレガントに見えないほどにはうまくいかなかったわけではありません。または少なくとも、\ __ init __。pyを追加することは私にとってはかなり退屈なようです。サブフォルダにアクセスするためにファイル構造を変更するのは不道徳なようです。 パスを変更するには、それは悪い習慣でしたが、合理的な解決策のようです。 – vmkrish