Я не могу упаковать свою программу с Pyinstaller, потому что у меня установлен enum34, не могу удалить, потому что это требуется используемому модулю.Какие-либо предложения? - PullRequest
0 голосов
/ 31 января 2019

Поэтому я пытаюсь упаковать программу, которую я написал для своей работы, которая позволяет людям добавлять, обновлять, удалять одну и ту же строку / столбцы в нескольких электронных таблицах (@ Smartsheets) одновременно.Я использую Kivy, и Smartsheet-Python-SDK

Когда я иду, чтобы упаковать приложение с PyInstaller, в соответствии с указаниями Kivy, я получаю ошибки: "модуль 'enum34' не имеет атрибута 'IntFlag'" и «У объекта 'str' нет атрибута 'items' "

Теперь, когда я ищу эту ошибку, я вижу только предложения удалить enum34 и установить обычный модуль enum.

Еще большая проблемачто API Smartsheet требует enum34, а PyInstaller требует регулярного enum.

Любые предложения о том, как справиться с этим?Могу ли я взять свой пирог и съесть его, установив оба, как?Похоже, что enum34 устанавливается в ту же папку, что и enum (я могу ошибаться, но я думал, что прочитал это несколько раз).

Я просмотрел предложения по всему этому сайту, но мне нужно как-тооба для каждой вещи требования.

Я пытался просто удалить enum34 и установить обычный enum, но, как вы можете догадаться, это сломало мой модуль smartsheet.

Вот ошибка, я не уверен, что мой код необходим (плюс я усердно работал, не хочу, чтобы его украли).

53 INFO: PyInstaller: 3.4
53 INFO: Python: 3.7.2
54 INFO: Platform: Windows-10-10.0.17763-SP0
55 INFO: wrote C:\Users\mpalu\Desktop\Smartsheet Mass Editor\SSMassEditor.spec
57 INFO: UPX is not available.
58 INFO: Extending PYTHONPATH with paths
['C:\\Users\\mpalu\\Desktop\\Smartsheet Mass Editor',
 'C:\\Users\\mpalu\\Desktop\\Smartsheet Mass Editor']
58 INFO: checking Analysis
58 INFO: Building Analysis because Analysis-00.toc is non existent
59 INFO: Initializing module dependency graph...
61 INFO: Initializing module graph hooks...
63 INFO: Analyzing base_library.zip ...
Traceback (most recent call last):
  File "<string>", line 41, in <module>
  File "<string>", line 13, in walk_packages
  File "C:\Users\mpalu\AppData\Local\Programs\Python\Python37-32\lib\pkgutil.py", line 130, in iter_modules
    for name, ispkg in iter_importer_modules(i, prefix):
  File "C:\Users\mpalu\AppData\Local\Programs\Python\Python37-32\lib\pkgutil.py", line 149, in _iter_file_finder_modules
    import inspect
  File "C:\Users\mpalu\AppData\Local\Programs\Python\Python37-32\lib\inspect.py", line 40, in <module>
    import linecache
  File "C:\Users\mpalu\AppData\Local\Programs\Python\Python37-32\lib\linecache.py", line 11, in <module>
    import tokenize
  File "C:\Users\mpalu\AppData\Local\Programs\Python\Python37-32\lib\tokenize.py", line 33, in <module>
    import re
  File "C:\Users\mpalu\AppData\Local\Programs\Python\Python37-32\lib\re.py", line 143, in <module>
    class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'....
....
3090 INFO: Caching module hooks...
3096 INFO: Analyzing C:\Users\mpalu\Desktop\Smartsheet Mass Editor\SS_Mass_Editor.py
3676 INFO: Processing pre-safe import module hook   urllib3.packages.six.moves
Traceback (most recent call last):
  File "<string>", line 2, in <module>
  File "C:\Users\mpalu\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\__init__.py", line 8, in <module>
    from .connectionpool import (
  File "C:\Users\mpalu\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\connectionpool.py", line 3, in <module>
    import logging ....
 AttributeError: 'str' object has no attribute 'items' </code>    

Как уже упоминалось, я просто хочу упаковать эту программу, чтобы люди в офисе могли использовать ее, и не нужно было устанавливать python и все пакеты (здесь никто не разбирается в компьютерах) и использовать пакетный файл.запустить программу.

1 Ответ

0 голосов
/ 31 января 2019

enum34 - это библиотека с обратным портированием для типа enum, представленного в python3.4, см. PEP435 и, возможно, в этом сообщении SO .Но так как вы используете python3.7, эта зависимость не может быть правильной.

Очевидно, разработчики smartsheet уже знают об этой проблеме и предоставили исправление.См. описание этой проблемы и фиксационный коммит .Обновление smartsheet, скорее всего, решит вашу проблему.

pip install smartsheet-python-sdk --upgrade

Если самая последняя версия еще не доступна через pip, вы можете установить ее из источника:

# Clone the repository
git clone https://github.com/smartsheet-platform/smartsheet-python-sdk.git
# As of now (Jan 2019), the fix has not been merged to master yet.
# Hence, directly clone the patch branch:
# git clone -b tw-updates-2.0 https://github.com/smartsheet-platform/smartsheet-python-sdk.git
cd smartsheet-python-sdk
# Install the module.
python setup.py install
...