2013-02-25 65 views
0

我想將python腳本轉換爲使用cx_Freeze的exe文件,但轉換後嘗試運行它,它出現erre「no modual named」re「 」。林不知道那是什麼,但我沒有在我的代碼中引用它。這裏是我的代碼的鏈接和安裝腳本:cx_Freeze python exe轉換沒有模塊命名爲「re」

設置:http://pastebin.com/6JN093u7

我的代碼:http://pastebin.com/nEinps53

林Win7上使用Python 3.3,雖然我的代碼寫在3.2,如果讓一個區別。如果我可以提供更多信息,那麼請詢問。

回答

0
  1. 請問你的代碼通常編譯自行(您通過cx_Freeze運行之前)? 「re」是python正則表達式庫。

  2. 如果你是爲客戶做這件事,你確定你的合同允許你公開發布整個源代碼嗎?

  3. 沒有冒犯,但你的編碼風格非常糟糕。你重複了很多代碼:你可以通過編寫泛化函數來簡化這個程序。舉例來說,線條16-60可以簡化爲這樣:

    def get_user_response(text, err_text="Please enter a number"): 
        derp=False 
        while derp == False: 
         try: 
          val = str(input(text)) 
          derp = True 
         except ValueError: 
           win32api.MessageBox(None,err_text, "Error!") 
           derp = False 
         derp = False 
        return val 
    room_price.write(get_user_response("What is the room price?")) 
    night_price.write(get_user_response("What is the laundry price?")) 
    Laundry_price.write(get_user_response("What is the internet price per hour?")) 
    Telephone_price.write(get_user_response("What is the telephone price per hour?")) 
    
  4. 關於這一點:考慮最後4行:你用小寫前兩個變量名和大小寫混合第二兩個變量。爲什麼?這隻會讓你的生活變得艱難。你應該選擇一個命名約定並堅持下去。

  5. 你的PassworD()功能只是一個真正的壞主意。不要以明文形式存儲密碼。一個常見的解決方案是將密碼存儲爲哈希值,但我不會假裝在加密或安全性方面很棒。但我知道你在做什麼是一個壞主意,你應該研究用明文存儲密碼的替代解決方案。

無論如何:我沒有看到您的特定錯誤的來源。對不起,你必須自己弄清楚。但是你可以通過各種方式大大簡化你的代碼(其中最重要的是將頻繁重複的代碼和命名約定劃分出來),簡單的代碼更容易調試。

+0

感謝您的回覆。我知道我的代碼很糟糕,但這是針對一個學校項目(中學),說實話是我第一次做了50多行。我確定我可以做很多事情來大大改善它,但由於有一個截止日期,我沒有太多時間。更不用提我寫新的代碼,我知道我有很多東西要學。至於密碼功能,這不是真正用於現實生活中的使用,所以只要它能存儲密碼就可以了。我對如何使其實際安全有一些基本的想法。無論如何,即時通訊使用可移植的Python,所以它dosnt得到編譯。 「編譯」 – user1956027 2013-02-26 15:29:59

+0

我的意思是你可以在解釋器中正常運行代碼而不會收到錯誤。 – 2013-02-26 20:49:15

+0

然後是的,我可以。 – user1956027 2013-02-27 16:15:02