我在尝试启动使用 pyinstaller 从 .py 文件编译的可执行文件时收到此错误。我已经尝试过 --onefile,但没有这样做,无论是否使用 upx,但这个问题仍然存在,并且它出现在弹出的命令行窗口中。 .py 文件本身就像一个魅力,所以我认为问题不在那里。
这是我的 .py 文件代码:
import pywhatkit
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor
from apscheduler.triggers.cron import CronTrigger
import logging
import sqlalchemy
logging.basicConfig()
logging.getLogger('apscheduler').setLevel(logging.DEBUG)
def sendmsg():
pywhatkit.sendwhatmsg(xx)
executors = {
'default': ThreadPoolExecutor(20),
'processpool': ProcessPoolExecutor(5)
}
job_defaults = {
'coalesce': False,
'max_instances': 100
}
scheduler = BackgroundScheduler(executors=executors, job_defaults=job_defaults)
scheduler.configure({'apscheduler.daemon': False})
scheduler.add_jobstore('sqlalchemy', url='sqlite:///jobs.sqlite')
scheduler.start()
我已经从中排除了不必要的信息。
这是弹出窗口中的错误图片:
dll文件也存在于我的system32文件夹中,我也尝试将其复制并放置在其他位置,但无济于事。
我愿意接受任何和所有的建议。
pyinstaller --onefile --upx-exclude=MSVCP140.dll filename --key 123456 -n test -F -w --upx-dir d:\directory_to_upx
这解决了我的问题。
在此之后我遇到了一个问题,程序说我的 sqlalchemy 库有问题。
所以我将最后一行导入更改为:
from flask-sqlalchemy import SQLAlchemy
我代码的最后一行:
scheduler.add_jobstore(SQLAlchemyJobStore(url))
希望这对遇到同样问题的其他人有帮助!
当我的驱动器已满时,我在 Windows 上遇到了完全相同的错误。 我通过在驱动器上腾出一些空间 解决了这个问题,而不是再次运行 exe 文件。 (我不需要重新运行 pyinstaller)。
希望这可以帮助某人。另外,我很想知道为什么会出现此错误而不是其他错误。在我意识到发生了什么之前真的很困惑。