Почему сценарий не может найти новый модуль после использования системной команды для установки пакета, когда сценарий в состоянии выполнения :
как выглядит структура каталога:
mymoduledir
|- target_module_dir
|- main.py
main.py код, подобный следующему:
if __name__ == "__main__":
try:
import target_module
print("module already exist")
# to-do something
except ImportError:
print("has not target_module, start install")
os.system("cd target-module-dir && python setup.py install")
print("install finished")
import target_module
# to-do something
Я обнаружил, что: если в среде python нет целевого модуля, мой скрипт автоматически установит его успешно, но я получил ошибку импорта,отображение журнала:
не имеет target_module, начать установку
выполняется установка .....
ЗаконченоОбработка зависимостей для target_module
установка завершена
Traceback (последний вызов был последним):
Файл ". \ main.py",строка 237, в
import target_module ImportError: Нет модуля с именем target_module_name
Это означает, что целевой модуль был успешно установлен, ноЯ встретил importerror, когда хочу импортировать его. Чтобы подтвердить свой вывод, я открываю оболочку python и пытаюсь импортировать целевой модуль, он работает.Когда я повторно запускаю этот скрипт, выводится журнал:
модуль уже существует
Это означает, что этот скрипт успешно импортирует целевой модуль
То, что я думаю: скрипт проверит среду Python перед запуском, если я хочу импортировать новый модуль в рабочем состоянии скрипта, мне нужно сообщить скрипту, что среда обновлена.
Я попробовал: Я искал много связанных проблем, но у меня нет эффективного решения.For some reason, I must use python2.6 to complete my function
. И я пытаюсь использовать функцию перезагрузки, как это, но она не может работать.
Что я должен сделать, чтобы решить эту проблему?