Я лично никогда не использовал zipfile. Вместо этого я передаю файлы данных, которые моя программа использовала в методе установки, и использую опцию bundle_files (как описано в нижней части этой страницы). Например, программа, которую я создаю, используя этот вызов
setup(name = "Urban Planning",
windows = [{'script': "main.py", "dest_base": "Urban_Planning"}],
options = opts, # Dictionary of options
zipfile = None, # Don't create zip file
data_files = Mydata_files) # Add list of data files to folder
также имеет перед ним кусок, в который добавляется файл конфигурации и некоторые изображения для пользовательского интерфейса, например:
Mydata_files = [] # List of data files to include
# Get the images from the [script root]/ui/images/ folder
for files in os.listdir(sys.path[0] + '/ui/images/'):
f1 = sys.path[0] + '/ui/images/' + files
if os.path.isfile(f1): # This will skip directories
f2 = 'ui/images', [f1]
Mydata_files.append(f2)
# Get the config file from the [script root]/Configs folder
Mydata_files.append(('Configs', [sys.path[0] + '/Configs/defaults.cfg']))
Таким образом, я могу вызывать свой конфигурационный файл так же, как при запуске сценария с использованием режима ожидания или командной строки, и мои изображения пользовательского интерфейса отображаются правильно.