我如何使用cx_freeze?

Edw*_*win 39 python 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")])
Run Code Online (Sandbox Code Playgroud)

小智 34

  • 添加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")])
Run Code Online (Sandbox Code Playgroud)

使用命令提示符(cmd)运行python setup.py build.(从包含的文件夹中运行此命令setup.py.)请注意build我们在脚本调用结束时添加的参数.

  • base的目的是什么,如果我希望我的可执行文件跨多个平台运行怎么办? (2认同)

aqu*_*tae 13

我真的不确定你在做什么来得到那个错误,看起来你正试图自己运行cx_Freeze而没有参数.所以这里有一个关于如何在Windows中执行此操作的简短分步指南(您的屏幕截图看起来很像Windows命令行,所以我假设这是您的平台)

  1. 编写setup.py文件.上面的脚本看起来是正确的,所以假设您的脚本存在,它应该可以工作.

  2. 打开命令行(Start- > Run- > "cmd")

  3. 转到setup.py文件的位置并运行 python setup.py build

笔记:

  1. 您的脚本名称可能存在问题."Main.py"包含大写字母,这可能会导致混淆,因为Windows的文件名不区分大小写,但python是.我的方法是始终使用小写脚本来避免任何冲突.

  2. 确保蟒蛇在您的PATH(读http://docs.python.org/using/windows.html)1

  3. 确保正在查看新的cx_Freeze 文档.谷歌似乎经常提出旧的文档.


Ces*_*sar 8

我遇到了类似的问题.我通过在变量中设置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'
               ]
      ) 
Run Code Online (Sandbox Code Playgroud)


Pra*_*hal 8

您可以将setup.py代码更改为:

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

我相信它会奏效.我在Windows 7以及ubuntu 12.04上都尝试过它