2012-03-27 16 views
28

我已按照說明創建了我的setup.py文件,但實際上我並不明白接下來要做什麼。在命令行鍵入「python setup.py build」只會導致語法錯誤。如何使用cx_freeze?

那麼,我該怎麼辦?

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")]) 
+0

你能告訴我們'setup.py',你的Python版本? – birryree 2012-03-27 18:47:58

+0

按照誰的指示? – 2012-03-27 18:48:38

+0

@birryree:查看編輯的問題。 – 2012-03-27 18:55:34

回答

11

我真的不知道自己在做什麼來得到這個錯誤,它看起來像你想獨立運行cx_Freeze,不帶參數。因此,這裏是如何做到這一點的窗口很短的一步一步的指導(你的截圖看起來有點像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.html1

  3. 製作肯定是正在尋找新cx_Freeze documentation。谷歌似乎經常提出舊的文檔。

+0

「'python'不被識別爲內部或外部命令,可操作程序或批處理文件。」 – 2012-03-29 17:26:50

+1

請參閱我的答案中的注2。 – aquavitae 2012-03-29 18:56:27

+0

「python:無法打開文件'setup.py':[Errno 2]沒有這樣的文件或目錄」輸入python以獲得Python命令提示符,所以我不明白這個錯誤。我的文件位於Python31文件夾中。 – 2012-03-29 19:20:58

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' 
       ] 
    ) 
29
  • 添加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

基地的目的是什麼,如果我想讓我的可執行文件跨多個平臺運行,該怎麼辦? – Max 2016-07-15 20:28:20

7

您可以更改設置。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上嘗試過它12.04