Не удается создать файл .exe с ошибкой PyInstaller с Pandas - PullRequest
2 голосов
/ 23 апреля 2020

Я работаю с Python 3.7.3 и PyInstaller 4.0, а также windows 10. Мой сценарий выглядит как

import pandas as pd
print('hello')

Но когда я пытаюсь сделать файл .exe, у меня появляется ошибка.

До сих пор я пробовал следующее:

pyinstaller --hidden-import=pandas --onefile myscript.py

Но это не работает. Я также обновляю до текущей версии разработки здесь: https://pyinstaller.readthedocs.io/en/stable/installation.html

Кроме того, я редактирую файл .spe c и пишу

# -*- mode: python -*-block_cipher = Nonedef get_pandas_path():
    import pandas
    pandas_path = pandas.__path__[0]
    return pandas_patha = Analysis(['FIFA.py'],
             pathex=['C:\\Users\\NBenton\\PycharmProjects\\RES3D_BETA'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)

dict_tree = Tree(get_pandas_path(), prefix='pandas', excludes=["*.pyc"])
a.datas += dict_tree
a.binaries = filter(lambda x: 'pandas' not in x[0], a.binaries)pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='FIFA',
          debug=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=True )

, а затем запускаю

pyinstaller myscript.spec --onefile

Я знаю, что это обычный вопрос, но ответы на другие вопросы у меня не работают.

Любая помощь? Спасибо

После большого количества строк ошибка:

File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\hooks\hook-numpy.core.py", line 29, in <module>
    pkg_base, pkg_dir = get_package_paths('numpy.core')
  File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\utils\hooks\__init__.py", line 528, in get_package_paths
    file_attr = get_module_file_attribute(package)
  File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\utils\hooks\__init__.py", line 330, in get_module_file_attribute
    raise ImportError
ImportError

Ответы [ 2 ]

2 голосов
/ 24 апреля 2020

hook- pandas .py

Добавление datas = collect_data_files('pandas') в файл hook-pandas.py сработало для меня

from PyInstaller.utils.hooks import collect_submodules
from PyInstaller.utils.hooks import collect_data_files

# Pandas keeps Python extensions loaded with dynamic imports here.
hiddenimports = collect_submodules('pandas._libs')
datas = collect_data_files('pandas')

Приглашение Anaconda

Я также добавил hidden-import pkg_resources.py2_warn, потому что я получил ошибку

(base) C:\Users\...\test_folder>pyinstaller test.py -F --hidden-import pkg_resources.py2_warn
102 INFO: PyInstaller: 3.6
102 INFO: Python: 3.7.6 (conda)
106 INFO: Platform: Windows-10-10.0.18362-SP0
116 INFO: wrote C:\Users...\test_folder\test.spec
120 INFO: UPX is not available.
125 INFO: Extending PYTHONPATH with paths

Примечание: -F совпадает с --onefile в pyinstaller test.py -F --hidden-import pkg_resources.py2_warn

test.py

import pandas as pd
print('hello world')
input()
1 голос
/ 24 апреля 2020

pyinstaller имел эту проблему, как сообщалось здесь

  1. Установите скрытый импорт, как предложено в теме:
hiddenimports = ['pandas._libs.tslibs.timedeltas',
'pandas._libs.tslibs.nattype',
'pandas._libs.tslibs.np_datetime',
'pandas._libs.skiplist']

Если это не сработает, попробуйте установить pandas, используя pip.

pip install pandas, а не через conda

I Я удивлен, увидев версию 4.0 Pyinstaller, поскольку, насколько я знаю, она не была выпущена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...