Ошибка импорта: нет модуля с именем _shim - PullRequest
1 голос
/ 20 июня 2019

Я использую PyInstaller для генерации исполняемого файла из скрипта Python. Вот что я сделал:

sudo python2 -m PyInstaller ptemplatized.spec 

Он успешно строит .exe , но когда я его запускаю, я получаю следующую ошибку:

[19878] LOADER: Running pyi_rth_mpldata.py
[19878] LOADER: Running pyi_rth_multiprocessing.py
[19878] LOADER: Running pyi_rth__tkinter.py
[19878] LOADER: Running pyi_rth_pkgres.py
[19878] LOADER: Running physiocap_templatized.py
Traceback (most recent call last):
  File "/home/abderrahmen/Bureau/PC/pour/physiocap_templatized.py", line 38, in <module>
    import geopandas
  File "/tmp/pip-build-2qvLhV/pyinstaller/PyInstaller/loader/pyimod03_importers.py", line 395, in load_module
  File "/usr/local/lib/python2.7/dist-packages/geopandas/__init__.py", line 5, in <module>
    from geopandas.io.file import read_file
  File "/tmp/pip-build-2qvLhV/pyinstaller/PyInstaller/loader/pyimod03_importers.py", line 395, in load_module
  File "/usr/local/lib/python2.7/dist-packages/geopandas/io/file.py", line 4, in <module>
    import fiona
  File "/tmp/pip-build-2qvLhV/pyinstaller/PyInstaller/loader/pyimod03_importers.py", line 395, in load_module
  File "/home/hadoop/.local/lib/python2.7/site-packages/fiona/__init__.py", line 83, in <module>
    from fiona.collection import BytesCollection, Collection
  File "/tmp/pip-build-2qvLhV/pyinstaller/PyInstaller/loader/pyimod03_importers.py", line 395, in load_module
  File "/home/hadoop/.local/lib/python2.7/site-packages/fiona/collection.py", line 9, in <module>
    from fiona.ogrext import Iterator, ItemsIterator, KeysIterator
  File "/tmp/pip-build-2qvLhV/pyinstaller/PyInstaller/loader/pyimod03_importers.py", line 684, in load_module
  File "fiona/ogrext.pyx", line 1, in init fiona.ogrext
ImportError: No module named _shim
[19878] Failed to execute script ptemplatized

Я пытался найти модуль, но, похоже, его не существует. Спасибо.


EDIT:

Итак, я получил ответ на другом сайте:

У Фионы есть модули расширения и довольно сложная логика. установочный скрипт для управления ими по отношению к разным версиям Библиотека GDAL. Вот почему python setup.py build (как сообщается в другая проблема) не будет работать, вы должны сделать Python setup.py build_ext строить. Я думаю, что вам нужно найти способ для pyinstaller, чтобы запустить Команда build_ext определена в файле fiona setup.py, и тогда вы будете все установлен.

Может кто-нибудь сказать мне, как это можно сделать в моем случае?


EDIT2:

Я посчитал эту ошибку установкой древней версии gdal с помощью tuto. Теперь мой Pyinstaller создает .exe без ошибок, но при выполнении его на другом компьютере я получаю ту же ошибку. Разве цель использования PyInstaller не состоит в том, чтобы выполнить файл .exe без необходимости установки всех модулей? Почему у меня возникает ошибка импорта, если PyInstaller работал хорошо и создал правильный .exe? Спасибо

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