cx_Freeze и Python 3.3

Итак, у меня есть код Python 3.3, из которого мне нужно создать .exe для Windows. Я обнаружил, что единственный способ сделать это — использовать cx_Freeze. Но дальше установки я не продвинулся. Этот вопрос прекрасно описывает мою проблему (за исключением того, что я запускаю Python 3.3), и на него еще не ответили:

установка/использование cx_freeze

Когда я пытаюсь запустить "python setup.py build" из cmd, я получаю:

"importerror: no module named cx_freeze" 

Я не могу пройти этот шаг и безуспешно искал решение в течение часа.

В случае необходимости Python установлен в C:\Python33. И Python, и cx_Freeze, которые я установил, являются 64-битными версиями. Я установил версию cx_Freeze: cx_Freeze-4.3.1.win-amd64-py3.3. Я попытался переустановить. Когда я делаю «импорт cx_Freeze» в IDLE, он не показывает никаких ошибок.

Также обратите внимание, что я новичок в программировании.


person Slobodan Stevic    schedule 25.05.2013    source источник


Ответы (2)


Ответ на вопрос в моем другом ответе. Убедитесь, что вы прочитали его первым, так как этот расширяет его.

Итак, после еще нескольких часов мучений я заставил свою игру работать как .exe на компьютерах людей, у которых не установлен Python, что и было моей целью! Я использовал Pygame для создания игры, если кому нужно знать.

Итак, вот что я сделал после шага в другом ответе, который я дал:

Это setup.py, который я использовал:

from cx_Freeze import setup, Executable

includefiles = ['add_all_your_files_here, example.png, example.mp3']
includes = []
excludes = []
packages = []

setup(
    name = 'yourgame',
    version = '1.0.0',
    description = '',
    author = 'John Doe',
    author_email = '[email protected]',
    options = {'build_exe': {'excludes':excludes,'packages':packages,'include_files':includefiles}}, 
    executables = [Executable('yourgame.py')]
)

Обратите внимание, что я не мог понять (и не хотел беспокоиться) о том, как включать файлы из других папок, поэтому я собрал их все вместе там, где был setup.py. Я пытался указать относительный путь, но, похоже, мне следовало указать абсолютный.

Чтобы заметить, какие файлы отсутствовали, мне пришлось запустить exe из cmd, чтобы при сбое я мог прочитать, в чем была ошибка. Это было невозможно сделать, когда я открывал .exe из Windows, потому что окно закрывалось слишком быстро.

Помимо файлов, которые требовались моему коду, ему также нужны были некоторые другие файлы .py. А именно:

re.py
sre_compile.py
sre_constants.py
sre_parse.py

Я скопировал их из python (c:\Python33\Lib) в папку с игрой.

Затем .exe смог без проблем запустить мою игру на моем и другом компьютере, на котором не установлен python (например, нет проблем со шрифтами, как я слышал, у некоторых людей).

Я потратил 9 часов за два дня, чтобы во всем этом разобраться. Надеюсь, это поможет другим новичкам.

person Slobodan Stevic    schedule 26.05.2013
comment
Вы можете очень быстро обойти проблему с закрытием консоли, если укажете ей использовать базу Win32GUI — см. пример здесь. - person Thomas K; 26.05.2013
comment
Необходимость файлов re&sre — это ошибка в cx_Freeze — она должна быть исправлена ​​в следующем релизе. Спасибо за упорство в решении вашей проблемы! - person Thomas K; 26.05.2013
comment
ВЫ, СЭР, САМЫЙ БОЛЬШОЙ ГЕНИЙ. Я искал весь день буквально около 2 недель решение моей проблемы, я не смог использовать cx_freeze с модулями, но вы помогли, повезло, что я нашел этот сайт, я проголосовал за этот ответ. :) - person Infamouslyuseless; 16.09.2013

Вам нужно сделать python командой cmd.

  1. Щелкните правой кнопкой мыши кнопку окна
  2. Нажмите Система
  3. Нажмите «Дополнительные параметры системы».
  4. Нажмите «Переменные среды».
  5. В разделе «Системные переменные» щелкните переменную «Путь».
  6. После выделения нажмите «Изменить».
  7. Введите новый путь (например: C:\Python34>) и нажмите «ОК».

Надеюсь, это поможет. Орррр... вы набрали cx_Freeze с небольшой буквой f. о, я только что заметил, что вы нашли свой ответ.

person Marty Mast    schedule 02.06.2017