patoolib解压报错

在开发时patoolib没有任何问题,但当我将其打包成一个exe后,就开始报错了。
测试用的数据是一样的
target_zip是压缩包绝对路径,self.path_download是存放文件夹的绝对路径
patoolib.extract_archive(target_zip, outdir=self.path_download,verbosity=-1)

Traceback (most recent call last):
  File "patoolib\__init__.py", line 553, in get_archive_cmdlist_func
  File "importlib\__init__.py", line 127, in import_module
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'patoolib.programs'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "edownload.py", line 263, in run
  File "edownload.py", line 141, in jieya
  File "patoolib\__init__.py", line 684, in extract_archive
  File "patoolib\__init__.py", line 472, in _extract_archive
  File "patoolib\__init__.py", line 555, in get_archive_cmdlist_func
patoolib.util.PatoolError: No module named 'patoolib.programs'

【以下回答由 GPT 生成】

根据报错信息可以看出,问题出在No module named 'patoolib.programs',提示没有找到patoolib.programs模块。

根据经验,这可能是因为patoolib库没有正确安装或者安装不完整导致的。以下是一些可能的解决方案:

  1. 确保patoolib库已经正确安装。可以使用以下命令重新安装patoolib库:

    pip install patool

  2. 如果步骤1没有解决问题,尝试升级patoolib库。使用以下命令升级patoolib库:

    pip install --upgrade patool

  3. 如果步骤2还是没有解决问题,可能是由于依赖库没有正确安装导致的。可以尝试手动安装patoolib依赖的库。根据patoolib的官方文档,它依赖以下几个库:numpy, python-magic, six。可以使用以下命令逐个安装这些依赖库:

    pip install numpy pip install python-magic pip install six

  4. 如果上述步骤都没有解决问题,可以尝试在代码中手动导入报错的模块patoolib.programs并重新运行代码。在代码的开头添加以下语句:

    python import patoolib.programs

    这样可以确保报错的模块被正确导入。

如果上述步骤还是没有解决问题,可能需要进一步排查错误。可以检查系统环境、Python版本以及其他可能的库冲突等因素是否导致了该问题。如果问题依然存在,建议查看patoolib的官方文档、GitHub仓库或者提问社区寻求帮助。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^