Как исправить исключительную ситуацию в библиотеке Snappy во время преобразования Python в исполняемый файл в экземпляре aws-ec2 на основе linux? - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь преобразовать мой код Python в исполняемый файл на ec2-экземпляре.Я успешно могу преобразовать код в исполняемый файл с помощью pyinstaller, однако при запуске исполняемого файла я получаю

'Sqlite3, OperationalError: невозможно открыть файл базы данных'.

Как только я изменил параметр uri на function(connect_to_db) внутри

"~ / snappy-manifolds / database.py"

, упомянутый в ошибке.Я получил другую ошибку

"SnapPy.PresentationMatrix не имеет атрибута _reduce_cython _".

Я использую Fastavro, Pandavro для чтения и записи в файл 'avro'.Однако эти библиотеки, похоже, имеют некоторые зависимости от библиотеки Snappy, так как она терпит неудачу при получении некоторых данных из папок библиотеки Snappy.Я изменил параметр uri для функции 'connect_to_db', определенной в

"~ / snappy-manifolds / database.py"

, что привело меня к другой ошибке:

"SnapPy.PresentationMatrix не имеет атрибута _reduce_cython _".

Я не знаю, что делать дальше.

Отслеживание ошибок:

    uri is /home/local/SNETACLOUD/svc-sdtm/anaconda3/lib/python3.6/site-packages/snappy_manifolds/sqlite_files/manifolds.sqlite

Traceback (most recent call last):
  File "NVS_Main_V2.py", line 11, in <module>
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "/home/local/SNETACLOUD/svc-sdtm/anaconda3/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "NVS_Utility_Services.py", line 18, in <module>
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "/home/local/SNETACLOUD/svc-sdtm/anaconda3/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages/fastavro/__init__.py", line 48, in <module>
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "/home/local/SNETACLOUD/svc-sdtm/anaconda3/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages/fastavro/write.py", line 2, in <module>
  File "fastavro/_write.pyx", line 578, in init fastavro._write
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "/home/local/SNETACLOUD/svc-sdtm/anaconda3/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages/snappy/__init__.py", line 7, in <module>
  File "cython/core/abelian_group.pyx", line 128, in init SnapPy
  AttributeError: type object 'SnapPy.PresentationMatrix' has no attribute 
  '__reduce_cython__'
  [29827] Failed to execute script NVS_Main_V2
  1. uri is /home/local/SNETACLOUD/svc-sdtm/anaconda3/lib/python3.6/site-packages/snappy_manifolds/sqlite_files/manifolds.sqlite

    • Это URI, который я сейчас передаю функции connect_to_db
  2. Файл "NVS_Utility_Services.py", строка 18, в

    • Этот оператор в коде «NVS_Utility_Services.py» имеет вид «import fastavro»

Ожидаемый результат: успешное выполнение исполняемого файла и выполнение операции.Когда я запускаю код python на экземпляре EC2, он выполняется успешно, но когда я преобразую его в исполняемый файл, он прерывается, выдавая ошибку, упомянутую выше.

...