Импорт Boto3, вызывающий ошибку при запуске через py2app - PullRequest
0 голосов
/ 11 марта 2020

Я создаю автономный инструмент, использующий API AWS, основные ошибки скрипта в строке import boto3. Когда я запускаю скрипт через CLI, он работает нормально. Когда я пытаюсь запустить его через приложение py2app, оно выдает следующую ошибку:

Traceback (most recent call last):
  File "scripts/application.py", line 18, in <module>
    import boto3
  File "<frozen zipimport>", line 259, in load_module
  File "boto3/__init__.pyc", line 16, in <module>
  File "<frozen zipimport>", line 259, in load_module
  File "boto3/session.pyc", line 17, in <module>
  File "/path/application.app/Contents/Resources/lib/python3.8/botocore/session.py", line 29, in <module>
    import botocore.credentials
  File "/path/application.app/Contents/Resources/lib/python3.8/botocore/credentials.py", line 34, in <module>
    from botocore.config import Config
  File "/path/application.app/Contents/Resources/lib/python3.8/botocore/config.py", line 16, in <module>
    from botocore.endpoint import DEFAULT_TIMEOUT, MAX_POOL_CONNECTIONS
  File "/path/application.app/Contents/Resources/lib/python3.8/botocore/endpoint.py", line 22, in <module>
    from botocore.awsrequest import create_request_object
  File "/path/application.app/Contents/Resources/lib/python3.8/botocore/awsrequest.py", line 25, in <module>
    import botocore.utils
  File "/path/application.app/Contents/Resources/lib/python3.8/botocore/utils.py", line 31, in <module>
    import botocore.httpsession
  File "/path/application.app/Contents/Resources/lib/python3.8/botocore/httpsession.py", line 8, in <module>
    from urllib3.util.ssl_ import (
ImportError: cannot import name 'ssl' from 'urllib3.util.ssl_' (/path/application.app/Contents/Resources/lib/python38.zip/urllib3/util/ssl_.pyc)

Мой текущий файл setup.py выглядит следующим образом:

import py2app
from setuptools import setup

APP_NAME = "Application"
APP = ['testkinter.py']
DATA_FILES = [('scripts', ['application.py']),
              ('images', ['Application.gif'])]

OPTIONS = { 'argv_emulation': False,
            'iconfile':'Actions.icns',
            'includes':['py2app', 'time', 'json', 'datetime','csv', 'boto3',
                        'tkinter','uuid', 'subprocess', 'pyOpenSSL', 'urllib3']}

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

pip3 Стоп-вывод:

altgraph==0.17
boto3==1.12.18
botocore==1.15.18
certifi==2019.11.28
cffi==1.14.0
chardet==3.0.4
cryptography==2.8
docutils==0.15.2
idna==2.9
jmespath==0.9.5
macholib==1.14
modulegraph==0.18
py2app==0.21
pycparser==2.20
pyOpenSSL==19.1.0
python-dateutil==2.8.1
requests==2.23.0
s3transfer==0.3.3
six==1.14.0
urllib3==1.25.8

Я попытался удалить и переустановить boto3, urllib3 и py2app, так что я знаю, что это не так просто исправить. Я также попытался включить / исключить библиотеки, которые я поместил в файл seteup.py.

Спасибо.

...