Py2App error: ModuleNotFoundError: No module named 'cmath' when using Pandas

Py2App error: ModuleNotFoundError: No module named 'cmath' when using Pandas

我正在尝试构建一个利用 Pandas 的独立应用程序。这是我的 setup.py 文件:

from setuptools import setup

APP = ['MyApp.py']
DATA_FILES = ['full path to/chromedriver']
PKGS = ['pandas','matplotlib','selenium','xlrd']
OPTIONS = {'packages': PKGS, 'iconfile': 'MyApp_icon.icns'}


setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app','pandas','matplotlib','selenium','xlrd'],
)

*.app 文件的制作很顺利,但是当我尝试 运行 它时,出现以下错误:

...
import pandas._libs.testing as _testing
      File "pandas/_libs/testing.pyx", line 1, in init pandas._libs.testing
    ModuleNotFoundError: No module named 'cmath'

我试图在我的 PKGS 列表和 setup.py 文件的 setup_requires 中包含“cmath”,但是当我尝试使用 py2app 构建应用程序时,它给了我错误:

distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('cmath')

我卡住了。我在网上找不到任何有用的东西。 cmath 应该自动包含在我阅读的内容中。关于问题出在哪里以及如何解决的任何想法?

我想我找到了解决方案:降级到 Python 版本 3.6.6。 参见:

要卸载 Python 我遵循了这个过程:https://www.macupdate.com/app/mac/5880/python/uninstall 然后我安装了 Python 3.6.6: https://www.python.org/downloads/release/python-366/

在 Python 3.6.6 中,Py2App 似乎可以正常工作并且顺利地包含 Pandas。

似乎由于某些原因 cmath 没有包含在 Python 的最新版本中?我可能错了。如果您有任何问题,请告诉我您的想法。

P.S.: 我正在使用 MacOS (Mojave 10.14.6) 和 PyCharm.

我对 py2appcmath 也有类似的问题。我通过在主脚本中添加 import cmath 来解决这个问题。 (MyApp.py 在你的情况下)我认为这样做可能 modulegraph 添加 cmath 库文件。