import os # we use os.path.join, os.path.basename
import sys # we use sys.path
import glob # we use glob.glob
import importlib # we use importlib.import_module
import_folder = 'C:\\myFolder'
sys.path.append(import_folder) # this tells python to look in `import_folder` for imports
for src_file in glob.glob(os.path.join(import_folder, '*.py')):
name = os.path.basename(src_file)[:-3]
importlib.import_module(name)
reload(sys.modules[name])
importlib.import_module(name)
コードがあります。今では全体の意味に:importlibを使用するとこれは少し正常になりますが、それでもいくつかのバグを助長します。これは、サブディレクトリ内のソースファイルに対してこれが壊れていることがわかります。あなたはおそらく、やるべきことは次のとおりです、パッケージをインポート(フォルダ全体をインポート)、およびそのよう.
演算子を使用します。
import sys # we use sys.path
sys.path.append('C:\\')
import myFolder
...
myFolder.func1(foo)
myFolder.val
bar = myFolder.Class1()
おそらく、あなたはdocumentation for modulesを見てみる必要がありますが、更新することを忘れないでくださいインポートするフォルダの親を含むパス。
"指定したディレクトリ内のすべてのPythonモジュールをリロードする必要があります。" - なぜ? –
誰かがディレクトリ内のすべてのモジュールをリロードしたい場合は、出力が時間に依存する場合があります。たとえば、プログラムがデータベースから定期的に更新されたデータを取得し、ユーザーモジュールがリンクされていない場合、特定のディレクトリ内のすべてのモジュールを再ロードすると便利です。 –
@Jack_of_All_Trades:OPの問題にはおそらくもっと良い解決策があるということがあります。そのため、この問題が実際に何かを知る必要があります。ところで、私は説明したユースケースを理解していません。 –