Я сейчас писал штуку чтобы находить установленные модули в game\mods. То есть в mods есть папка, в которой есть файл mod_init.py с общей информацией о модуле. И я в цикле перебираю директории с этим файлом, и с каждой директории я импортирую name version и тд, попутно записывая его в список l. Код:
Вся суть проблемы в том, что у меня там два модуля lol, test. Только все пошло немного не по плану и импортировался только самый верхний модуль 2 раза в список. То есть то что должно быть в списке это test 1.0 и lol 1.1, а там lol 1.1 и lol 1.1. Насколько я понял пути к модулям я нахожу правильно (они содержатся в m), но sys.path.append сработал только на первый путь. Вместо того чтобы зайти в обе директории, почему-то я захожу только в первую.
Python:
path = os.path.abspath('')
def find_files(catalog, f):
lfindf = []
for root, dirs, files in os.walk(catalog):
lfindf += [os.path.join(root, name) for name in files if name == f]
return lfindf
modules = find_files(path+'\mods\\', 'mod_init.py')
count = 0
l = []
l1 = []
for module in modules:
m = str(module.rstrip('mod_init.py'))
sys.path.append(m)
from mod_init import name, version, textures, modific
m1 = (name, version, textures, modific)
m2 = (name, version)
l.append(m1)
l1.append(m2)
sys.path.append(path)
count += 1
Вся суть проблемы в том, что у меня там два модуля lol, test. Только все пошло немного не по плану и импортировался только самый верхний модуль 2 раза в список. То есть то что должно быть в списке это test 1.0 и lol 1.1, а там lol 1.1 и lol 1.1. Насколько я понял пути к модулям я нахожу правильно (они содержатся в m), но sys.path.append сработал только на первый путь. Вместо того чтобы зайти в обе директории, почему-то я захожу только в первую.