Как использовать cx_freeze?
Я создал файл setup.py в соответствии с инструкциями, но на самом деле я не понимаю.. что делать дальше. Ввод "python setup.py build" в командную строку просто вызывает синтаксическую ошибку.
Итак, что мне делать?
setup.py:
from cx_Freeze import setup, Executable
setup(
name = "On Dijkstra Algorithm",
version = "3.1",
description = "A Dijkstra Algorithm help tool.",
exectuables = [Executable(script = "Main.py", base = "Win32GUI")])
Ответы
Ответ 1
- Добавьте
import sys
в качестве новой линии верха
- Вы ошибочно написали "исполняемые файлы" в последней строке.
- Удалите
script =
в последней строке.
Теперь код должен выглядеть следующим образом:
import sys
from cx_Freeze import setup, Executable
setup(
name = "On Dijkstra Algorithm",
version = "3.1",
description = "A Dijkstra Algorithm help tool.",
executables = [Executable("Main.py", base = "Win32GUI")])
Используйте командную строку (cmd
) для запуска python setup.py build
. (Запустите эту команду из папки, содержащей setup.py
.) Обратите внимание на параметр build
, который мы добавили в конце вызова script.
Ответ 2
Я действительно не уверен, что вы делаете, чтобы получить эту ошибку, похоже, что вы пытаетесь запустить cx_Freeze самостоятельно, без аргументов. Итак, вот краткое пошаговое руководство о том, как это сделать в окнах (ваш скриншот выглядит скорее как оконная командная строка, поэтому я предполагаю, что ваша платформа)
-
Запишите файл setup.py. Ваш script выше выглядит правильно, поэтому он должен работать, предполагая, что ваш script существует.
-
Откройте командную строку (Start
→ Run
→ "cmd"
)
-
Перейдите в папку файла setup.py и запустите python setup.py build
Примечания:
-
Может возникнуть проблема с именем вашего script. "Main.py" содержит буквы верхнего регистра, что может вызвать путаницу, поскольку имена файлов Windows не чувствительны к регистру, но python. Мой подход заключается в том, чтобы всегда использовать строчные буквы для сценариев, чтобы избежать конфликтов.
-
Убедитесь, что python находится на вашем PATH (читайте http://docs.python.org/using/windows.html) 1
-
Убедитесь, что вы смотрите новую документацию cx_Freeze . Google часто, похоже, воспитывает старые документы.
Ответ 3
У меня возникла аналогичная проблема. Я решил это, установив опции Executable в переменной, а затем просто вызвав переменную. Ниже приведен пример 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'
]
)
Ответ 4
Вы можете изменить код setup.py на это:
from cx_freeze import setup, Executable
setup( name = "foo",
version = "1.1",
description = "Description of the app here.",
executables = [Executable("foo.py")]
)
Я уверен, что это сработает. Я пробовал это на обоих окнах 7, а также на ubuntu 12.04
Ответ 5
найдите cxfreeze
script и запустите его. Он будет находиться на том же пути, что и ваши другие скрипты-помощники python, такие как pip
.
cxfreeze Main.py --target-dir dist
читайте больше на:
http://cx-freeze.readthedocs.org/en/latest/script.html#script