我如何使用 cx_freeze 或 py2exe, xlwings, numpy

How do I use cx_freeze or py2exe, with xlwings, numpy

我正在使用 xlwings,当我想通过 cx_Freeze 脚本 运行 我的 freezed 时,出现以下错误:

Traceback (most recent call last):
  File "C:\Users\D\Anaconda\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module>
    exec(code, m.__dict__)
  File "prueba.py", line 1, in <module>
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 2237, in _find_and_load
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 2226, in _find_and_load_unlocked
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 1191, in _load_unlocked
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 1161, in _load_backward_compatible
  File "C:\Users\D\Anaconda\lib\site-packages\numpy\__init__.py", line 206, in <module>
    from . import ma
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 2284, in _handle_fromlist
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 321, in _call_with_frames_removed
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 2237, in _find_and_load
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 2226, in _find_and_load_unlocked
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 1191, in _load_unlocked
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 1161, in _load_backward_compatible
  File "C:\Users\D\Anaconda\lib\site-packages\numpy\ma\__init__.py", line 49, in <module>
    from . import extras
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 2284, in _handle_fromlist
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 321, in _call_with_frames_removed
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 2237, in _find_and_load
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 2226, in _find_and_load_unlocked
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 1191, in _load_unlocked
  File "c:\Python-bit.4\lib\importlib\_bootstrap.py", line 1161, in _load_backward_compatible
  File "C:\Users\D\Anaconda\lib\site-packages\numpy\ma\extras.py", line 438, in <module>
    :np.apply_over_axes.__doc__.find('Notes')].rstrip() + \
AttributeError: 'NoneType' object has no attribute 'find'

我的 setup.py 文件如下所示:

from cx_Freeze import setup, Executable
build_exe_options = {'packages': ['win32com', 'xlwings'],
                     'optimize': 2}
setup(name = 'prueba',
      version = '0.1.0',
      options = {'build_exe': build_exe_options},
      executables = [Executable('prueba.py')])

我已经阅读了有关 numpy&cx_Frezze 的问题,所以我也尝试冻结 python 以使用 py2exe 执行。

这里还有另一个问题...当我想运行它在excel时没有反应也没有变化。

我能够使用 python3.

通过以下 setup.py 成功 cx_freeze xlwings
from cx_Freeze import setup, Executable

buildOptions = dict(packages = [], excludes = [])

base = 'Console'

executables = [
    Executable('main.py', base=base, targetName = 'main.exe')
]

setup(name='foo',
      version = '0.1',
      description = 'bar',
      options = dict(build_exe = buildOptions),
      executables = executables)

And here there is another problem... When I want to run it in excel there is no response and no change.

你的意思是代码在冻结之前不起作用?