如何解决在python中自动下载所有必要的库
我做了这个代码来测试一些导入:
import os
import psutil
import pygetwindow as window
from time import sleep
import win32api
import PySimpleGUI as pys
import pyautogui as py
from time import sleep
import webbrowser
import winsound
import importlib.util
from random import randint
from datetime import date
import locale
layout = [
[pys.Text(f'Complete =)',size=(25,0))],]
jan = pys.Window('Test',layout=layout,finalize=True)
jan.read()
我使用 freeze
创建了一个可执行文件,有时会出现错误 ModuleNotFoundError: No module named:(lib)
always is a different lib,我尝试了每个 lib 运行 pip install (lib)
但没有奏效。
是否存在某种方法来检查是否安装了某个库,如果没有,则自动下载代码中的库?
更改代码:
import sys
import subprocess
packages = []
file = open('requirements.txt','r')
for lines in file:
packages.append(lines)
file.close()
for library in packages:
try:
import library
except Exception as e:
library= library.replace("\n","")
subprocess.check_call(
[sys.executable,'-m','pip','install',library]
)
import pygetwindow as window
import PySimpleGUI as pys
import pyautogui as py
import importlib.util
import psutil
layout = [
[pys.Text(f'Complete =)',finalize=True)
jan.read()
requirements.txt:
PySimpleGUI
psutil
pygetwindow
pyautogui
importlib
解决方法
使用 freeze
生成可执行文件是什么意思?
我认为您指的是 requirements.txt
文件,这是使用在命令行上执行 pip freeze> requirements.txt
生成的文件,不要忘记删除不必要的导入。您可以使用 pip install -r requirements.txt
用于检查库和安装自动程序
您使用 import <packagename>
import sys
import subprocess
try:
import <packagename>
except Exception as e:
subprocess.check_call(
[sys.executable,'-m','pip','install','<packagename>'])
希望对虚拟环境有所帮助,了解虚拟环境
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。