python 3:py2app“找不到模块(无条件导入)”

2024-04-17

我正在为一个对代码一无所知的朋友构建一个独立的 python 应用程序。对于这个应用程序,我使用多个模块,包括tkinter and openpyxl. I use py2app制作我的应用程序。

尽管程序的 GUI 部分可以工作,但使用的方法openpyxl模块没有。正如我的终端所示:

Modules not found (unconditional imports):
 * StringIO.StringIO (pkg_resources._vendor.six)
 * _gdbm (dbm.gnu)
 * cjkwrap (texttable)
 * com (com.sun.jna)
 * com.jna (com.sun)
 * com.sun (com.sun.jna.platform)
 * copy_reg (pyexcel_io._compact)
 * defusedxml (openpyxl.xml.functions)
 * itertools.izip (ctypes.macholib.dyld)
 * itertools.izip_longest (ctypes.macholib.dyld)
 * lxml (openpyxl.conftest, openpyxl.xml.functions)
 * lxml.LXML_VERSION (lxml.etree)
 * lxml.etree.Element (openpyxl.conftest, openpyxl.xml)
 * lxml.etree.ElementTree (openpyxl.conftest, openpyxl.xml)
 * lxml.etree.LIBXML_VERSION (openpyxl.xml, openpyxl.xml.functions)

等等 ...

现在我首先想到的是我的setup.py文件错误,所以我调查了一下。尽管我仍然对这个选择感到困惑argv_emulation我认为这是正确的。

from setuptools import setup

APP = ['foo.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': False,
           'includes': ['time', 'openpyxl', 'pyexcel', 'os', 'platform', 'tkinter']}

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

python代码可以工作,我已经在Mac虚拟机上测试过,所以没有问题。

我注意到这个问题并不新鲜,并且发现多个线程正在处理它,包括:
- 将 py2app 与 tkinter 和 openpyxl 以及多个文件一起使用? https://stackoverflow.com/questions/18364295/using-py2app-with-tkinter-and-openpyxl-and-multiple-files:但 .egg 文件仅出现在python 2.X not in python 3所以我不知道如何解释它
- 将常量移动到配置文件会破坏 py2exe 和 py2app https://bitbucket.org/openpyxl/openpyxl/issues/498: 这正是我的问题,所以我遵循了08/2017 为此制作的补丁 https://bitbucket.org/als/openpyxl/commits/aa3b82bd8fa3d795f09c1d8141bdbe6f76e800a8
不幸的是,新的 openpyxl__init__.py文件不再包含任何 .json 文件的链接。

所以现在我很茫然。有任何想法吗 ?

*编辑:使用完全相同的代码,但使用xlwings模块而不是openpyxl模块工作完美。但前者打开文件并在其中工作。这很慢并且(我认为)使用起来不太好。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 3:py2app“找不到模块(无条件导入)” 的相关文章

随机推荐