Мне нужно создать исполняемый файл из моего приложения Python 3. Поскольку мне нужно сделать это в Linux (Ubuntu) и Windows, я решил использовать PyInstaller (он позволяет создавать один исполняемый файл, поддерживает несколько платформ и работает с Python 3). Это приложение использует GDAL для перевода и деформации изображений. Когда я запускаю его в активированной среде conda, он работает просто отлично.
Вот мой файл спецификаций, который я сгенерировал с помощью pyi-makespec
:
# -*- mode: python -*-
block_cipher = None
a = Analysis(['../../src/app.py'],
pathex=['var/pyinstaller/'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='app',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True )
А вот ошибка, которую он продолжает выдавать:
ERROR 1: PROJ: proj_create_from_database: Open of /home/cisu/anaconda3/envs/env_name/share/proj failed
ERROR 1: Translating source or target SRS failed:
EPSG:5678
ERROR 1: PROJ: proj_create_from_wkt: Open of /home/cisu/anaconda3/envs/env_name/share/proj failed
ERROR 1: PROJ: pj_obj_create: Open of /home/cisu/anaconda3/envs/env_name/share/proj failed
Traceback (most recent call last):
File "src/app.py", line 235, in <module>
File "src/app.py", line 204, in process
File "src/app.py", line 165, in _warp
File "site-packages/osgeo/gdal.py", line 625, in Warp
File "site-packages/osgeo/gdal.py", line 3410, in wrapper_GDALWarpDestName
TypeError: in method 'wrapper_GDALWarpDestName', argument 4 of type 'GDALWarpAppOptions *'
[17879] Failed to execute script app
Это для конфигурации --onedir
, и она ведет себя точно так же для конфигурации --onefile
. GDAL не установлен в моей системе, но он установлен в среде conda, которую я использую для создания двоичного файла. У кого-нибудь есть идеи, что я делаю не так?
EDIT
Я запустил двоичный файл в новой установке Ubuntu, и вот что у меня есть:
ERROR 1: PROJ: proj_create_from_database: Cannot find proj.db
ERROR 1: Translating source or target SRS failed:
EPSG:5678
По какой-то причине ошибка другая, но она все еще не работает.