Я использую 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
? Спасибо