python - 在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
解决方案
使用 使可执行文件是什么意思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>'])
希望它的帮助并了解虚拟环境
推荐阅读
- php - 在grocery_crud中遇到了一个php错误
- php - 在 Amazon EC2 上安装 php-dom 扩展
- php - WordPress, HTML \\ 如何在特定页面的区域插入标签
- java - 如何避免 Chrome Keep and Discard 使用 selenium 和 java?
- tcp - 当重新启动一个 flink 作业/作业正在进行故障转移时,你应该怎么做才能优雅地释放所有资源?
- arrays - 如何使用 PowerShell 映射 2 个对象数组?
- php - LARAVEL 7:ErrorException 未定义的索引
- css - 设置 css 变量等于类属性
- activemq-artemis - ActiveMQ Artemis 自动停止。本地主机未加载
- javascript - 无论如何,IE11 是否支持 BigInt?