我如何使用cx_freeze?

时间:2012-03-27 18:44:34

标签: 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")])

5 个答案:

答案 0 :(得分:33)

  • 添加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参数。

答案 1 :(得分:12)

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

  1. 编写setup.py文件。上面的脚本看起来是正确的,所以它应该有效,假设你的脚本存在。

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

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

  4. 注意:

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

    2. 确保您的PATH上有python(阅读http://docs.python.org/using/windows.html1

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

答案 2 :(得分:7)

我遇到了类似的问题。我通过在变量中设置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'
               ]
      ) 

答案 3 :(得分:7)

您可以将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

上都试过了

答案 4 :(得分:2)

找到cxfreeze脚本并运行它。它将与您的其他python帮助程序脚本位于相同的路径中,例如pip

cxfreeze Main.py --target-dir dist

阅读更多内容: http://cx-freeze.readthedocs.org/en/latest/script.html#script