web-dev-qa-db-ja.com

Python用の.pyを.exeに変換する方法を教えてください。

私はかなり単純なPythonプログラムを実行可能ファイルに変換しようとしていて、探しているものが見つからなかったので、いくつか質問があります(私はPython3.6を実行しています)。

私がこれまでに見つけたことをこれを行う方法は次のとおりです。

  1. 古いバージョンのPythonをダウンロードしてpyinstaller/py2exeを使う
  2. 3.6で仮想環境をセットアップすることで、私ができるようになります1。
  3. pythonからC++への変換プログラムをダウンロードしてそれを使う。

これが私が試したこと/私が遭遇したどんな問題です。

  • 必要なダウンロードの前にpyinstallerをインストールしました(pypi-something)ので、うまくいきませんでした。前提条件ファイルをダウンロードした後、pyinstallerはまだそれを認識しません。
  • 2.7でvirtualenvを設定している場合、2.7を実際にインストールする必要がありますか?
  • 同様に、私が見る唯一のpythonからC++への変換プログラムはpython 3.5までしか動作しません - これを試みるならこのバージョンをダウンロードして使用する必要がありますか?
77
user7396807

Python 3.6で.pyを.exeに変換する手順

  1. Python 3.6 をインストールしてください。
  2. Cx_Freezeをインストールします(コマンドプロンプトを開き、pip install cx_Freezeを入力します。
  3. Idnaをインストールします(コマンドプロンプトを開き、pip install idnaを入力します。
  4. .pyという名前のmyfirstprog.pyプログラムを書きます。
  5. スクリプトの現在のディレクトリにsetup.pyという名前の新しいpythonファイルを作成します。
  6. setup.pyファイルに、以下のコードをコピーして保存します。
  7. Shiftキーを押しながら同じディレクトリを右クリックすると、コマンドプロンプトウィンドウを開くことができます。
  8. プロンプトにpython setup.py buildと入力します。
  9. スクリプトにエラーがなければ、アプリケーションの作成に問題はありません。
  10. 新しく作成されたフォルダbuildを確認してください。別のフォルダがあります。そのフォルダ内にあなたのアプリケーションを見つけることができます。それを実行します。幸せにしてください。

私の blog にあるオリジナルのスクリプトを見てください。

setup.py:

from cx_Freeze import setup, Executable

base = None    

executables = [Executable("myfirstprog.py", base=base)]

packages = ["idna"]
options = {
    'build_exe': {    
        'packages':packages,
    },    
}

setup(
    name = "<any name>",
    options = options,
    version = "<any number>",
    description = '<any description>',
    executables = executables
)

編集:

  • myfirstprog.pyの代わりに.pyextensionファイル名を step 4 に作成されたとおりに配置するようにしてください。
  • .pyの各importedパッケージをpackagesリストに含めるべきです(例:packages = ["idna", "os","sys"]
  • any name, any number, any descriptionファイルのsetup.pyは同じままではいけません、それに応じてそれを変更するべきです(例:name = "<first_ever>", version = "0.11", description = ''
  • importedパッケージは、 step 8 を起動する前にインストールする必要があります。

Python 3.6はまだPyinstallerではサポートされていません。それでそれを使うためにはPython 3.5かそれ以下が必要になるでしょう。私はpy2exeについてはよくわかりません。

とにかく、ケース1は次のようにしてください。

Pythonフォルダにcmdウィンドウを開きます(コマンドウィンドウを開いてcdを使用するか、WindowsのエクスプローラでShiftキーを押したまま右クリックして[Open command window here]を選択します)。それからちょうど入ってください

pip install pyinstaller

以上です。

それを使用する最も簡単な方法はあなたのコマンドで入力することですプロンプト

pyinstaller file_name.py

使い方の詳細については、 この質問 をご覧ください。

更新

Python 3.6がPyinstallerでサポートされました

44

Auto-py-to-exe on Github というオープンソースプロジェクトがあります。実際にはPyinstallerも内部的に使用しているだけですが、Pyinstallerを制御する単純なGUIがあるため、快適な代替手段となるかもしれません。他のソリューションとは異なり、スタンドアロンファイルを出力することもできます。設定方法を示す ビデオ もあります。

GUI:

Auto Py to Exe

出力:

Output

9
Gab

私はあなたに最高のものを言うことはできませんが、私が過去に成功して使ったツールはcx_freezeでした。彼らは最近(17年1月7日に)バージョン5.0.1に更新し、Python 3.6をサポートします。

これがpypiです https://pypi.python.org/pypi/cx_Freeze

ドキュメントには、ニーズに応じて複数の方法があることが示されています。
http://cx-freeze.readthedocs.io/en/latest/overview.html

私はまだ試したことがないので、それを行う簡単な方法が議論された記事を指すつもりです。しかし、いくつかのことは変わったかもしれませんし変わっていないかもしれません。
cx_freezeの使い方は?

6
Gerschel

私は私のパッケージPySimpleGUIと共にNuitkaとPyInstallerを使っています。

Nuitka tkinterをNuiktaでコンパイルするのに問題がありました。プロジェクトの貢献者の一人が問題を解決するスクリプトを開発しました。

あなたがtkinterを使っていないのなら、それはあなたのためだけに "うまくいく"かもしれません。あなたがtkinterを使用しているならば、そう言ってください、そして私はスクリプトと指示を公表させようとします。

PyInstaller 3.6を実行していますが、PyInstallerはうまく機能しています。私は私のexeファイルを作成するために使用するコマンドは次のとおりです。

pyinstaller -wF myfile.py

-wFは単一のEXEファイルを作成します。私のプログラムはすべてGUIを持っていて、windowにshowコマンドを表示させたくないので、-wオプションはコマンドウィンドウを隠します。

これは、のように見えるWinformsプログラムをPythonで書かれたものにすることに近いです。

2
MikeyB

py2exeは、PythonスクリプトからスタンドアロンのWindows実行可能プログラム(32ビットおよび64ビット)を構築することができるdistutils拡張です。 Python 3.3以降がサポートされています。それはコンソールの実行可能ファイル、windows(GUI)実行可能ファイル、windowsサービス、そしてDLL/EXE COMサーバーを構築することができます。

ここからダウンロードできます。

https://pypi.org/project/py2exe/

2
Tejas Joshi