How to use cx_freeze or py2exe, with xlwings, numpy

I use xlwings, and when I want to run my freezedon a cx_Freezescript, I have the following error:

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\64-bit\3.4\lib\importlib\_bootstrap.py", line 2237, in _find_and_load
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 2226, in _find_and_load_unlocked
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 1191, in _load_unlocked
  File "c:\Python\64-bit\3.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\64-bit\3.4\lib\importlib\_bootstrap.py", line 2284, in _handle_fromlist
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 321, in _call_with_frames_removed
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 2237, in _find_and_load
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 2226, in _find_and_load_unlocked
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 1191, in _load_unlocked
  File "c:\Python\64-bit\3.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\64-bit\3.4\lib\importlib\_bootstrap.py", line 2284, in _handle_fromlist
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 321, in _call_with_frames_removed
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 2237, in _find_and_load
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 2226, in _find_and_load_unlocked
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 1191, in _load_unlocked
  File "c:\Python\64-bit\3.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'

My file is setup.pyas follows:

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')])

I read about issues with numpy & cx_Frezze, so I also tried to freeze python for exe with py2exe.

And here is another problem ... When I want to run it in excel, there is no answer and no changes.

+4
source share
1 answer

I can successfully cx_freeze xlwingswith the following setup.pyusing python3.

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 is another problem ... When I want to run it in excel, there is no answer and no changes.

Do you mean that the code does not work until it is frozen?

+1

Source: https://habr.com/ru/post/1612791/


All Articles