Импортировать или установить модуль из скрипта командной строки
У меня есть скрипт, который выглядит так:
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 сообщение об ошибке импорта