2014-02-10 27 views
1

我用Py2exe在我的程序:Py2exe創建程序這麼想的工作

import time 

start = time.clock() 

def sortare(n): 
    return sorted(str(n)) 

def main(): 
    n = 99999 
    while True: 
     if sortare (2 * n) == sortare(3 * n) == sortare(4 * n) == sortare(5 * n) == sortare(6 * n): 
      print (n) 
      break 
     n += 1 
    print (time.clock() - start) 

if __name__ == "__main__": 
    main() 

這是我的setup.py:

from distutils.core import setup 
import py2exe 

setup(windows=['C:\Users\Rares\workspace\Test\src\Test.py']) 

我已經安裝了蟒蛇和2.7.6 py2exe爲64位,因爲我的機器是這樣的。我在Windows CMD中使用
python C:\Python27\Test\test.py py2exe

我有一個名爲distr的文件夾,其中我的程序去了,但是當我運行exe時,沒有任何反應。甚至沒有錯誤或txt文件。

感謝您的任何建議。

+0

難道你雙擊EXE運行它?它可能運行並退出這麼快,你什麼都看不到。你有沒有嘗試從命令行運行exe文件? – Mark

+0

我確實遇到過一些只是打開和關閉的exe,但是我使用的這個算法需要至少1秒才能工作。即使如此,程序運行完全沒有圖形提示。也從CMD運行它,它只顯示一個空行。 – user3232848

回答

1

嘗試在腳本的前兩行之一中添加shebang #!行。

看看這裏的進一步信息:What does the symbol "#!" mean in Python?

編輯:根據您使用(通過python -V驗證)的Python版本,shebang行會是這樣的:

#! /usr/local/bin/python2.7

+0

是不是UNIX的shebang?我正在運行Windows,即使我使用它,它仍然是一個問題。 – user3232848

+0

@ user3232848我在網上找到的一個新手解決方案,可能會幫助您在代碼的最後輸入'raw_input(「Press 」)'。也可以嘗試在代碼中添加更多的打印語句以獲得代碼讀取過程的狀態。 – 2014-02-10 21:49:46

+0

@ user3232848也是爲了shebang你是對它的unix,但是你的程序可能不得不在其他os'es中運行,所以它是一個包含它的好習慣。隨時詢問你是否有任何問題。 – 2014-02-10 21:54:37

1

代替使用「windows =」作爲setup.py(用於創建Windows GUI應用程序)中的選項,則需要使用「console =」創建一個Windows控制檯應用程序(它將向控制檯輸出內容)。

我改變了你的setup.py是如下,它的工作對我來說:

from distutils.core import setup 
import py2exe 

setup(console=[{'script':'C:\Users\Rares\workspace\Test\src\Test.py'}])