Возможно, я пропустил шаг или сделал что-то не так, но методы, которые выше, не связывают файлы данных с PyInstaller в один файл exe. Позвольте мне поделиться шагами, которые я сделал.
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
return os.path.join(base_path, relative_path)
a = Analysis(['C:\\Users\\TCK\\Desktop\\Projeler\\Converter-GUI.py'],
pathex=['C:\\Users\\TCK\\Desktop\\Projeler'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
#Add the file like the below example
a.datas += [('Converter-GUI.ico', 'C:\\Users\\TCK\\Desktop\\Projeler\\Converter-GUI.ico', 'DATA')]
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='Converter-GUI',
debug=False,
strip=False,
upx=True,
#Turn the console option False if you don't want to see the console while executing the program.
console=False,
#Add an icon to the program.
icon='C:\\Users\\TCK\\Desktop\\Projeler\\Converter-GUI.ico')
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='Converter-GUI')
Заключение: Есть еще несколько файлов в папке dist.
Примечание: я использую Python 3.5.
EDIT: Наконец, он работает с методом Джонатана Рейнхарта.
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
return os.path.join(base_path, relative_path)
image_path = resource_path("Converter-GUI.ico")
self.window.iconbitmap(image_path)
pyinstaller --onefile your_file.py
pyinstaller your_file.spec
После 6 шага ваш один файл готов к использованию.
Вы должны окружить ваше предложение ON
параметрами, если вы делаете что-то, кроме простого сравнения:
select
cdbl(fs.[Market Value]) as Value
from [database$] as data
left join [AFS$] as fs on (data.[FIELD1]=fs.[field1] OR data.[FIELD2]=fs.[field2])
Обратите внимание, что если вы хотите проверить, существуют ли определенные данные, я рекомендую используя предложение EXISTS
.