0

cx_Freeze を使用して Python スクリプトを exe に変換しようとしていますが、変換して実行しようとすると、「"re" という名前のモジュールがありません」というエラーが表示されます。それが何であるかはわかりませんが、コードではまったく参照していません。私のコードとセットアップスクリプトへのリンクは次のとおりです。

セットアップ: http://pastebin.com/6JN093u7

私のコード: http://pastebin.com/nEinps53

私はwin7でPython 3.3を使用していますが、私のコードは3.2で書かれていますが、それが違いを生む場合。さらに情報を提供できる場合は、お尋ねください。

4

1 に答える 1

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 行を考えてみましょう。最初の 2 つの変数名には小文字を使用し、次の 2 つの変数には大文字と小文字を混在させます。なんで?これはあなたの人生を難しくするだけです。命名規則を選択し、それに従う必要があります。

  5. あなたのPassworD()機能は、本当に本当に悪い考えです。パスワードを平文で保存しないでください。一般的な解決策は、パスワードをソルト ハッシュとして保存することですが、暗号化やセキュリティに優れているふりをするつもりはありません。しかし、あなたがしていることは悪い考えであることはわかっています。パスワードをプレーンテキストで保存するための代替ソリューションを調査する必要があります。

いずれにせよ、特定のエラーの原因がわかりません。申し訳ありませんが、それは自分で解決する必要があります。しかし、さまざまな方法でコードを大幅に簡素化することができ (特に、頻繁に繰り返されるコードを区分化したり、命名規則を使用したりすることはありません)、単純なコードはデバッグがはるかに簡単です。

于 2013-02-25T19:24:47.113 に答える