Один исполняемый файл с Py2Exe

Я пытаюсь сделать один исполняемый файл, и я приближаюсь. Пожалуйста, не рекомендуется использовать PyInstaller – я пробовал этот маршрут, спросил здесь , и добавил билеты. Он близок, но не совсем работает. Я теперь пытаюсь py2exe, и я тоже очень близко. В pyinstaller я могу создавать файлы ресурсов (который создает исполняемый файл с включенными файлами – я могу получить к ним доступ во временной папке).

Я хочу сделать то же самое для py2exe. У меня есть один исполняемый файл, но пять дополнительных папок (карты, mpl-данные, данные, фотографии и tcl). Я видел этот вопрос, но, похоже, не понимаю его и не должен работать. В моем основном файле py я использую PersistentDict(filepath) путь к файлу PersistentDict(filepath) котором мне нужен путь к файлу.

Мой вопрос состоит из двух частей: 1. Как получить файлы (файлы данных ниже), упакованные в исполняемый файл. 2. Как получить доступ к этим файлам в моем коде и вернуть их путь (в виде строки), например /temp/file1.jpg.

Вот мой код для моего установочного файла py2exe – обратите внимание, что у меня есть matplotlib и должен корректно включать mpl-data в мой исполняемый файл. Благодаря!

 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, ) 

2 Solutions collect form web for “Один исполняемый файл с Py2Exe”

Гай объясняет, как упаковать в один файл с py2exe. Он не устанавливает пакеты внутри исполняемого файла.

Когда я упаковываю свои приложения, я не использую один исполняемый файл

 options = {"py2exe": {'bundle_files': 1, 'compressed': True}}, 

даже не потрудились поместить их в library.zip через

 options = {"py2exe": {"skip_archive":0}} 

Просто укажите несколько файлов pic, файлов данных, dll и т. Д. В одном каталоге. Затем создайте установщик, используя NSIS или установку Inno. Поскольку некоторые из моих приложений должны работать как службы, Inno заботился об этом. Самый большой плюс этого подхода, вам не нужно иметь дело с «замороженными» путями к вашим файлам, которые отличаются от ваших исходных путей.

В противном случае вам может потребоваться изменить код для обнаружения замороженных путей, например http://www.py2exe.org/index.cgi/WhereAmI

Я видел пакетный конвертер EXE (Advanced Batch to EXE Converter), но это странно: это позволит вам помещать файлы в каталог «bake», и ими можно управлять с помощью «% MYFILES% \ [путь] "каталог / переменная. Если у вас есть комната для маневра, проверьте это. Единственная проблема заключается в том, что он добавит в файл «intro» (чтение: прославленная флеш-анимация), и он отобразит FIRST. (Я против пиратства, но с ним все в порядке … «Вступление» – 45 секунд и неприятно.)

Если это вас не испугает, попробуйте сделать это.

  • Преобразование строки Python в кортеж без разделения символов
  • Что делают флаги low_memory и memory_map в pd.read_csv
  • Как найти открытую рамку чтения в Python
  • В чем разница между этими двумя утверждениями Python?
  • Как отображать pandas DataFrame из float, используя строку формата для столбцов?
  • Проблема Pydev PyUnit при использовании thread.join для обеспечения присоединения всех потоков
  • Длительная обработка файлов
  • Потоковая передача файлов в mongodb gridfs
  •  
    Interesting Posts for Van-Lav

    определение точки django

    Python xlrd parse Excel xlsx в csv с преобразованием даты

    PyQt4 импорт QtCore, QtGui ImportError: ошибка загрузки DLL:% 1 не является допустимым приложением Win32

    Являются ли встроенные функции плотности вероятности `scipy.stat.distributions` медленнее, чем пользователь предоставил один?

    UV-отображение плохо работает при низком разрешении (предупреждение: много изображений)

    sklearn логистическая регрессия с неуравновешенными классами

    Веб-API в колбе

    Декораторы с параметрами?

    Как хранить индексы в списке

    В моей системе требуется более 32 звуковых карт USB

    Python, генерирующий все неубывающие последовательности

    Django App Engine: AttributeError: объект 'AnonymousUser' не имеет атрибута 'backend'

    Как удалить конкретное слово из строки?

    django: отключить PREPEND_WWW при использовании ip-адреса вместо имени домена

    pandas.merge: совпадение с ближайшей меткой времени> = серия временных меток

    Python - лучший язык программирования в мире.