首页 > 解决方案 > 在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)总是一个不同的库,我尝试了每个库运行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 =)', size=(25, 0))],
]
jan = pys.Window('Test', layout=layout, finalize=True)
jan.read()

要求.txt:

PySimpleGUI
psutil
pygetwindow
pyautogui
importlib

标签: pythonimportpython-import

解决方案


使用 使可执行文件是什么意思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>'])
    

希望它的帮助并了解虚拟环境


推荐阅读