Я пытаюсь создать один исполняемый файл, и я приближаюсь. Пожалуйста, не рекомендуйте использовать PyInstaller - я пробовал этот маршрут, спросил SO здесь и поместил билеты. Он близок, но не совсем работает. Я теперь пытаюсь py2exe, и я тоже очень близко. В pyinstaller я могу создавать файлы ресурсов (который создает исполняемый файл с включенными файлами - я могу получить к ним доступ во временной папке).
Я хочу сделать то же самое для py2exe. У меня есть один исполняемый файл, но пять дополнительных папок (карты, mpl-данные, данные, фотографии и tcl). Я видел это question, но, похоже, не понял его и не смог его сработать. В моем основном файле py я использую PersistentDict(filepath)
, где мне нужен путь к файлу.
Мой вопрос состоит из двух частей: 1. Как получить файлы (файлы данных ниже), упакованные в исполняемый файл. 2. Как получить доступ к этим файлам в моем коде и вернуть их путь (в виде строки), например /temp/file 1.jpg.
Вот мой код для моего установочного файла py2exe - обратите внимание, что у меня есть matplotlib и должен корректно включать mpl-данные в мой исполняемый файл. Спасибо!
from distutils.core import setup
import py2exe
import shutil
import glob
import matplotlib,six
opts = {'py2exe': { "includes" : ["matplotlib.backends",
"matplotlib.backends.backend_qt4agg",
"matplotlib.figure","numpy",
"six",
"mpl_toolkits.basemap",
"matplotlib.backends.backend_tkagg"],
'excludes': ['_gtkagg', '_tkagg','_agg2','_cairo',
'_cocoaagg', '_fltkagg', '_gtk', '_gtkcairo', 'tcl' ],
'dll_excludes': ['libgdk-win32-2.0-0.dll','w9xpopen.exe',
'libgobject-2.0-0.dll'],
'bundle_files': 1,
'dist_dir': "Dist Folder",
'compressed': True,
}
}
data_files = [(r'mpl-data', glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\*.*')),
(r'mpl-data', [r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\matplotlibrc']),
(r'mpl-data\images',glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\images\*.*')),
(r'mpl-data\fonts',glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\*.*')),
(r'mpl-data\data', glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\data\*.*')),
('data', ['C:\\Users\\Me\\Documents\\Example_Json_File.json']),
('pics', ['C:\\Users\\Me\\Documents\\Example_Icon.ico',
'C:\\Users\\Me\\Documents\\Example_Jpg.jpg',
])]
setup(windows=[{"script" : "MyMainScript.py",
"data_files" : data_files,
"icon_resources": [(1, 'C:\\Users\\Me\\Documents\\Example_Icon.ico')]}, ],
version = "1.0",
options=opts,
data_files=data_files,
zipfile = None,
)