Как использовать cx_freeze?

Я создал файл setup.py в соответствии с инструкциями, но на самом деле я не понимаю, что делать дальше. При вводе «python setup.py build» в командной строке возникает синтаксическая ошибка.

Итак, что мне делать?

setup.py:

from cx_Freeze import setup, Executable

setup(
    name = "On Dijkstra's Algorithm",
    version = "3.1",
    description = "A Dijkstra's Algorithm help tool.",
    exectuables = [Executable(script = "Main.py", base = "Win32GUI")])

person Edwin    schedule 27.03.2012    source источник
comment
Можете ли вы показать нам setup.py, вашу версию Python?   -  person wkl    schedule 27.03.2012
comment
@birryree: см. отредактированный вопрос.   -  person Edwin    schedule 27.03.2012
comment
какая синтаксическая ошибка? Можете ли вы опубликовать трассировку?   -  person aquavitae    schedule 27.03.2012
comment
@aquavitae Это в командной строке. Может кто-нибудь, пожалуйста, проясните, куда я должен поместить сборку python setup.py, потому что инструкции, которые я прочитал, не дают ясности.   -  person Edwin    schedule 27.03.2012
comment
Я думаю, ваша проблема в том, что exectuables написано с ошибкой. Должно быть executables.   -  person wkl    schedule 27.03.2012
comment
@birryree: О… упс. Хорошо, я попробую еще раз.   -  person Edwin    schedule 27.03.2012
comment
Вы запускаете python setup.py build из системной командной строки (командная строка, терминал), а не из оболочки Python.   -  person Thomas K    schedule 28.03.2012
comment
@aquavitae: мне удалось сделать этот скриншот: upload.shaiex.net/files/139/ cxfreezeerror.png   -  person Edwin    schedule 28.03.2012


Ответы (5)


  • Добавьте import sys в качестве новой верхней линии
  • Вы неправильно написали «исполняемые файлы» в последней строке.
  • Удалите script = в последней строке.

Теперь код должен выглядеть так:

import sys
from cx_Freeze import setup, Executable

setup(
    name = "On Dijkstra's Algorithm",
    version = "3.1",
    description = "A Dijkstra's Algorithm help tool.",
    executables = [Executable("Main.py", base = "Win32GUI")])

Используйте командную строку (cmd) для запуска python setup.py build. (Выполните эту команду из папки, содержащей setup.py.) Обратите внимание на параметр build, который мы добавили в конце вызова скрипта.

person Bryan    schedule 26.11.2012
comment
Какова цель базы и что, если я хочу, чтобы мой исполняемый файл работал на нескольких платформах? - person Max; 15.07.2016

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

  1. Напишите файл setup.py. Ваш скрипт выше выглядит правильно, поэтому он должен работать, если ваш скрипт существует.

  2. Откройте командную строку (Start -> Run -> "cmd")

  3. Перейдите к местоположению вашего файла setup.py и запустите python setup.py build

Заметки:

  1. Может быть проблема с названием вашего скрипта. «Main.py» содержит буквы верхнего регистра, что может вызвать путаницу, поскольку имена файлов Windows не чувствительны к регистру, а python — чувствительны. Мой подход заключается в том, чтобы всегда использовать строчные буквы для сценариев, чтобы избежать конфликтов.

  2. Убедитесь, что python находится в вашем PATH (прочитайте http://docs.python.org/using/windows.html)1

  3. Убедитесь, что вы просматриваете новую документацию по cx_Freeze. Google часто, кажется, поднимает старые документы.

person aquavitae    schedule 29.03.2012
comment
«python» не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл. - person Edwin; 29.03.2012
comment
python: не удается открыть файл 'setup.py': [Errno 2] Нет такого файла или каталога При вводе python появляется командная строка Python, как и ожидалось, поэтому я не понимаю эту ошибку. Мой файл находится в папке Python31. - person Edwin; 29.03.2012
comment
Используйте cd, чтобы перейти в каталог, где находится ваш файл setup.py. - person Thomas K; 30.03.2012
comment
@ThomasK: Это сделало это! Я никогда раньше не пользовался командной строкой, поэтому мне нужно ориентироваться в ней, как маленькому ребенку. Спасибо всем за помощь. - person Edwin; 30.03.2012

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

from cx_Freeze import setup, Executable
import sys

productName = "ProductName"
if 'bdist_msi' in sys.argv:
    sys.argv += ['--initial-target-dir', 'C:\InstallDir\\' + productName]
    sys.argv += ['--install-script', 'install.py']

exe = Executable(
      script="main.py",
      base="Win32GUI",
      targetName="Product.exe"
     )
setup(
      name="Product.exe",
      version="1.0",
      author="Me",
      description="Copyright 2012",
      executables=[exe],
      scripts=[
               'install.py'
               ]
      ) 
person Cesar    schedule 05.04.2012

Вы можете изменить код setup.py на это:

    from cx_freeze import setup, Executable
    setup( name = "foo",
           version = "1.1",
           description = "Description of the app here.",
           executables = [Executable("foo.py")]
         )

Я уверен, что это сработает. Я пробовал это как на Windows 7, так и на Ubuntu 12.04.

person Pratik Singhal    schedule 11.10.2013

найдите скрипт cxfreeze и запустите его. Он будет находиться по тому же пути, что и другие ваши вспомогательные скрипты Python, такие как pip.

cxfreeze Main.py --target-dir dist

читайте больше на: http://cx-freeze.readthedocs.org/en/latest/script.html#script

person gcb    schedule 24.07.2015