Скомпилированный скрипт Python возвращает ошибку WindowsError: [Ошибка 3] после использования py2exe - PullRequest
0 голосов
/ 29 апреля 2011

Итак, я уже некоторое время пишу эту игру и, наконец, она закончена. Однако из-за того, что игра предназначена для класса, и я использовал библиотеки, которые мой учитель не собирается устанавливать, мне нужно сделать один исполняемый файл, который будет работать независимо от python и игровых зависимостей. Я запустил py2exe, и он успешно завершился, однако, когда я запускаю exe, я получаю эту ошибку:

Traceback (most recent call last):
  File "main.pyw", line 1, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "libs\__init__.pyo", line 3, in <module>
WindowsError: [Error 3] The system cannot find the path specified: 'C:\\Users\\matt\\workspace\\COS125\\src\\dist\\includes.zip\\libs/*.*'

Я выяснил, какова наиболее вероятная причина ошибки. Скорее всего, это происходит из-за автоматического импортера, который я установил для каждого пакета. В файлах init .py для моих пакетов я использую следующий код, чтобы простой импорт из libs * импортировал все файлы из пакета lib. Это сделает так, что каждый файл будет загружен так, как если бы я загружал каждый файл как «из libs.module import *».

Код в файле init выглядит следующим образом:

import os, sys
path = os.path.dirname(__file__)
dirList = os.listdir(path)
for mod in dirList:
    ext = os.path.splitext(mod)
    mod = mod[:-len(ext[1])]
    if (mod not in dir() and 
        mod != "__init__" and
        mod != "" and
        mod != "._"):
        exec("from " + mod + " import *")

По сути, я спрашиваю, знает ли кто-нибудь еще, как это сделать, не приводя к этой ошибке после компиляции?

1 Ответ

0 голосов
/ 03 мая 2011

Я думаю, что столкнулся с подобной проблемой пару лет назад и решил ее, избавившись от zip-файлов в дистрибутиве.

С опциями py2exe попробуйте установить zipfile = None или, возможно, отключить сжатиеи отключите связывание.

Обратите внимание, что создание EXE-файла Windows, который будет работать на всех ОС Windows, является проблемой.Я получил хороший отзыв об этом из списка py2exe здесь и здесь .

...