python-3.x - 使用 cx_Freeze 制作应用程序时没有名为“队列”的模块
问题描述
我正在尝试从我的 python 脚本创建一个 exe 文件,当我运行由 cx_Freeze 创建的 exe 时,出现以下错误,
Traceback (most recent call last):
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Scripts\ScheduleThread.py", line 28, in run
schedule.run_pending()
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Wallpaper-Updater_venv\lib\site-packages\schedule\__init__.py", line 563, in run_pending
default_scheduler.run_pending()
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Wallpaper-Updater_venv\lib\site-packages\schedule\__init__.py", line 94, in run_pending
self._run_job(job)
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Wallpaper-Updater_venv\lib\site-packages\schedule\__init__.py", line 147, in _run_job
ret = job.run()
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Wallpaper-Updater_venv\lib\site-packages\schedule\__init__.py", line 466, in run
ret = self.job_func()
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Scripts\MainUpdater.py", line 14, in MainUpdater
Scrapper(dir_path, subreddit_name)
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Scripts\Scrapper.py", line 2, in Scrapper
import praw
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Wallpaper-Updater_venv\lib\site-packages\praw\__init__.py", line 14, in <module>
from .reddit import Reddit # NOQA
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Wallpaper-Updater_venv\lib\site-packages\praw\reddit.py", line 11, in <module>
from prawcore import (Authorizer, DeviceIDAuthorizer, ReadOnlyAuthorizer,
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Wallpaper-Updater_venv\lib\site-packages\prawcore\__init__.py", line 4, in <module>
from .auth import (Authorizer, DeviceIDAuthorizer, ReadOnlyAuthorizer, # NOQA
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Wallpaper-Updater_venv\lib\site-packages\prawcore\auth.py", line 5, in <module>
from requests import Request
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Wallpaper-Updater_venv\lib\site-packages\requests\__init__.py", line 43, in <module>
import urllib3
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Wallpaper-Updater_venv\lib\site-packages\urllib3\__init__.py", line 8, in <module>
from .connectionpool import (
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Wallpaper-Updater_venv\lib\site-packages\urllib3\connectionpool.py", line 28, in <module>
from .packages.six.moves import queue
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Scripts\build\exe.win-amd64-3.7\lib\urllib3\packages\six.py", line 92, in __get__
result = self._resolve()
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Scripts\build\exe.win-amd64-3.7\lib\urllib3\packages\six.py", line 115, in _resolve
return _import_module(self.mod)
File "C:\MS_Notes\my_scripts\Wallpaper-Updater\Scripts\build\exe.win-amd64-3.7\lib\urllib3\packages\six.py", line 82, in _import_module
__import__(name)
ModuleNotFoundError: No module named 'queue'
这是我的 setup.py 文件,
from cx_Freeze import setup, Executable
base = None
includefiles = ["wallpaper_updater_2XT_icon.ico"]
executables = Executable(
script="WallpaperUpdater.py",
base=base,
icon="wallpaper_updater_2XT_icon.ico"
)
packages = ["idna"]
options = {
'build_exe':
{
'packages': packages,
'include_files': includefiles
},
}
setup(
name="Wallpaper Updater",
options=options,
version="0.1",
description='Downloads top images form subreddits and change wallpaper',
executables=[executables]
)
而且我也尝试过使用 pyinstaller,但是 praw 存在问题,我收到以下错误,
Traceback (most recent call last):
File "Scripts\ScheduleThread.py", line 28, in run
File "site-packages\schedule\__init__.py", line 563, in run_pending
File "site-packages\schedule\__init__.py", line 94, in run_pending
File "site-packages\schedule\__init__.py", line 147, in _run_job
File "site-packages\schedule\__init__.py", line 466, in run
File "Scripts\MainUpdater.py", line 14, in MainUpdater
File "Scripts\Scrapper.py", line 8, in Scrapper
File "Scripts\RefreshTokenGen.py", line 75, in RefreshToken
File "Scripts\RefreshTokenGen.py", line 49, in main
File "site-packages\praw\reddit.py", line 129, in __init__
File "site-packages\praw\config.py", line 72, in __init__
File "site-packages\praw\config.py", line 98, in _initialize_attributes
File "site-packages\praw\config.py", line 31, in _config_boolean
AttributeError: '_NotSet' object has no attribute 'lower'
显然这是因为 pyinstaller 无法将 .py 完美地制作成 .exe 可以通过更改 praw 脚本来修复,我不知道该怎么做,因为回答这里的人没有提到如何做,但我已经就此联系过他。
如果有人可以为我提供任何帮助,我将不胜感激。先感谢您。
解决方案
推荐阅读
- apache - 在 RHEL 8.4 中,Httpd 服务未启动并出现 dlopen 错误
- c++ - clang-tidy Xcode 静态分析器集成
- javascript - Javascript 中的 Discord 音乐机器人
- python - 无法通过python将数据插入Oracle表
- javascript - 加入和减少对象数组
- javascript - 机器人不会加入语音频道
- sql - 在单个 SQL 查询中添加多个 IN 条件和汇总时间段
- python - Tkinter 按钮禁用背景
- c - 如何解决 10.4 MISRA 2012 规则?
- android - 当用户单击 mMap.setOnMarkerClickListener 时如何发送值?