python - 自动化导入模块
问题描述
如果它们不存在,我有这个来导入所有模块,问题是即使我有它们,如果我不存在它也会表现出来,我做错了什么?
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)
这总是尝试安装所有模块,即使它们已经存在,有什么想法吗?
解决方案
当你导入一个模块时,你会这样做:
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)
推荐阅读
- javascript - 在 node.js 中解析 WHERE 子句
- javascript - bootstrap 通知 ajax 成功响应
- java - Android Studio“从未使用过变量”,但实际上已使用(BigInteger 问题,未解决的参考)
- python - Python 复制在具有自定义 __new__ 方法的类上失败
- java - 使用 Double Array get 方法返回 null 的映射
- c# - 如何使用 SkiaSharp 绘制复杂的圆形边框
- java - 如何在 BoxLayout 中为 JComponent 设置位置?
- r - CRAN:我多久可以推送一次更新?
- r - 使用 R 语言在数据帧上刮取 JSON
- google-analytics-api - 如何查询自定义维度google anaylitics api