setuptools 在 conda 中降级以启用 pyinstaller

setuptools downgrading in conda to enable pyinstaller

我构建了一个脚本来获取 mysql 数据库中的数据,进行一些计算并输出 csv/xls。我想让它成为一个可执行文件,供我不太懂技术的同事使用。我选择 pyinstaller 这样做。 我在 Windows 7 上使用 Anaconda 并在 python 3.5[=36= 中编码].

这是我的错误信息:

  Traceback (most recent call last):
  File "C:\Anaconda3\lib\site-packages\PyInstaller\loader\rthooks\pyi_rth_pkgres.py", line 11, in <module>
    import pkg_resources as res
  File "c:\anaconda3\envs\downsetuptool\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
    exec(bytecode, module.__dict__)
  File "site-packages\setuptools-27.2.0-py3.5.egg\pkg_resources\__init__.py", line 68, in <module>
  File "site-packages\setuptools-27.2.0-py3.5.egg\pkg_resources\extern\__init__.py", line 61, in load_module
ImportError: The 'appdirs' package is required; normally this is bundled with this package so if you get this warning, consult the packager of your distribution.
Failed to execute script pyi_rth_pkgres

网上查了一下,appdirs包的这个ImportError是已知问题,有解决办法。我发现我需要将 setuptools 包降级到 19.2。 这是我的尝试:

  • 使用 setuptools 19.2 创建了一个新的 conda 环境(我称之为 downsetuptools)。结果:同样的错误(指示 setuptools-27.2,而不是 19.2,如上)
  • 在此环境中重新安装了 pyinstaller。结果:同样的错误(指示 setuptools-27.2,而不是 19.2,如上)
  • root 环境中将 setuptools 降级到 19.2。结果:同样的错误(指示 setuptools-27.2,而不是 19.2,如上)
  • 使用 pip(而不是 conda)卸载 setuptools 并重新安装版本 19.2。结果:同样的错误(指示 setuptools-27.2,而不是 19.2,如上)
  • 我删除了整个 setuptools-27.2 文件夹和我能在 Anaconda3 文件夹下找到的所有 zip 文件。结果:同样的错误(指示 setuptools-27.2,而不是 19.2,如上)

问题的根源似乎是降级不起作用。我没有解决方案。有什么想法吗?

以下解决方案有效: 删除 pyinstaller 并在 downsetuptool 环境中重新安装。

假设:setuptools的降级必须在安装pyinstaller之前完成。