pip установить пакет программно, а затем импортировать его без перезагрузки - PullRequest
0 голосов
/ 19 марта 2020

Я устанавливаю python пакет из работающего Python кода с использованием надежного subprocess.popen ()

subprocess.Popen([sys.executable, '-m', 'pip', 'install', <path to package wheel>, '--upgrade'], text=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

Я пытаюсь импортировать модуль с помощью importlib. Этот вызов завершается неудачно и требует перезапуска сервера, чтобы иметь возможность загрузить только что установленный модуль. Есть ли какой-либо способ динамической перезагрузки модулей в потоке?

Я нашел похожий вопрос, который не смог получить никакого ответа :( Refre sh pip установленных пакетов Оцените, если кто-то может помощь или руководство.

1 Ответ

0 голосов
/ 19 марта 2020

find_spec делает эту работу. Он ищет пакет, если не находит запись в sys.modules.

importlib.util.find_spec(module_name, package=None)
...