首页 > 解决方案 > 自动化导入模块

问题描述

如果它们不存在,我有这个来导入所有模块,问题是即使我有它们,如果我不存在它也会表现出来,我做错了什么?

listimport=["request","shutil","shutil","styless","time","tkinter","openpyxl","html","datetime","importlib","string",
      "easygui","bs4","webbrowser","glob","tarfile","webbrowser","pathlib","platform","subprocess","tkinterweb",
            "jira","numpy","matplotlib","calendar","sys","math","math","parser","pyautogui","dateutil","xlwt"]
for x_imp in listimport:
    try:
        import x_imp
    except ImportError as e:
        os.system('pip install ' + x_imp)

这总是尝试安装所有模块,即使它们已经存在,有什么想法吗?

标签: pythonpython-3.xpython-import

解决方案


当你导入一个模块时,你会这样做:

import request

使用您的程序,您将尝试像这样导入每个字符串

import "request"

因为listimport包含字符串!所以每次都会出错!

__import__您可以使用相同的方法修复它,但是在字符串上:

import os

listimport = ["request","shutil","shutil","styless","time","tkinter","openpyxl","html","datetime","importlib","string",
      "easygui","bs4","webbrowser","glob","tarfile","webbrowser","pathlib","platform","subprocess","tkinterweb",
            "jira","numpy","matplotlib","calendar","sys","math","math","parser","pyautogui","dateutil","xlwt"]

for x_imp in listimport:
    try:
        __import__(x_imp)
    except ImportError as e:
        os.system('pip install ' + x_imp)

推荐阅读