У меня проблема с программным импортом всех файлов python в текущем каталоге и всех подкаталогов дерева. Единственная проблема в том, что я (по любой причине) не могу импортировать файлы в подкаталогах, не вызывая ошибку импорта, что из моих исследований очень распространено. Вот код:
#import importlib.util as importutil
import os, sys
print("Import handler loaded! Please run a function....")
filelist = []
cwd = str(os.getcwd())
def get_py_files():
print("Loading from: " + str(cwd))
for path, subdirs, files in os.walk(cwd):
#print(path, files)
for name in files:
if not "importhandler" in name and name.endswith(".py"):
filelist.append([path.replace("\\", "/").split("/")[-1], name])
print("File scanning complete!")
#print(filelist, sep='\n')
def import_files():
for path, file in filelist:
importlib.__import__(file)
#importlib.import_module(path)
get_py_files()
import_files()
Итак, вывод:
Import handler loaded! Please run a function....
Loading from: D:\P\PYTHON PROJECTS\Space to Race\events
File scanning complete!
Traceback (most recent call last):
File "D:\P\PYTHON PROJECTS\Space to Race\events\importhandler.py", line 28, in <module>
import_files()
File "D:\P\PYTHON PROJECTS\Space to Race\events\importhandler.py", line 20, in import_files
importlib.__import__(file)
File "<frozen importlib._bootstrap>", line 1059, in __import__
File "<frozen importlib._bootstrap>", line 978, in _gcd_import
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 936, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 978, in _gcd_import
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 948, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'fileinfolder'
Я понятия не имею, как решить эту проблему, несмотря на поиск возможных вариантов, но ни один из них не работаетправильно. Я проконсультировался: Как импортировать модуль с указанием полного пути? * В частности, , и он чем-то похож, но решение дает ошибку в моей системе (v. 3.6.1). Вот моя файловая система (все файлы py пусты, за исключением обработчика импорта): Главный каталог: D: \ P \ PYTHON PROJECTS \ Space to Race \ events
..\importhandler.py
..\testp.pya
..\eventsmainscope\
..\pytest\subdir1\
..\pytest\folderintest\__init__.py
..\pytest\folderintest\fileinfolderintest.py
..\pytest\fileinfolder.py
..\pytest\newpytestfile.py
..\pytest\notanewfile.pya
Надеюсь, эта информация поможет в любомОтветы вы, ребята, можете дать мне. Я вставил файлы, не относящиеся к python, чтобы проверить мой алгоритм фильтрации, и это, кажется, работает нормально, поэтому, похоже, это вызвано фактическим процессом импорта файлов py. Спасибо за любую помощь!