Импортировать или установить модуль из скрипта командной строки

У меня есть скрипт, который выглядит так:

import pip
import sys

def main(argv):
    ...[does stuff]...

if __name__ == "__main__":
    main(sys.argv[1:])

Я хотел бы реализовать эту функцию, которую я нашел в стеке, который импортирует пакет (или установить его, если это необходимо).

def import_or_install(package):
try:
    __import__(package)
except ImportError:
    pip.main(['install', package])

Мое видение заключается в том, что если я запускаю скрипт на случайном компьютере, если пакет, необходимый для запуска указанного скрипта, не установлен, скрипт делает это автоматически; В противном случае импортируйте модуль.

Когда я пытаюсь запустить его, я получаю NameError о том, что модули, которые я вызываю в main(), не определены.

Ссылка на то, где я нашел функцию: проверьте, существует ли модуль, если не установлен

1 ответ

Что я понимаю в вопросе, если что-то вроде этого:

import pip

not_installed = []

try:
 import test1

except ImportError,err:
    k= str(err).split(' ')
    not_installed.append(k[-1])

for i in not_installed:
   pip.main(['install',i])

Здесь test1 - файл для запуска, соответственно преобразуйте его в cli

PS: проверено на 1 сообщение об ошибке импорта

Другие вопросы по тегам