web-dev-qa-db-ja.com

pyinstallerの使い方

さて、私はプログラミングの完全な初心者であり、文字列を取り、morse.pyと呼ばれるモールス信号で文字列を出力する、私が書いた簡単なプログラムをコンパイルしようとしています。私はpyinstallerをインストールしました

 pip install pyinstaller

pyinstallerを使用してプログラムをコンパイルしようとしています。

少し検索したところ、pyinstaller morse.pyを作成する必要があると表示されましたが、どこに書き込むかわかりません。プログラムのディレクトリに移動してCMDで実行しようとしましたが、機能しませんでした。 pythonプログラムを同じディレクトリで作成してみましたが、それもうまくいきませんでした。ファイルのコンパイル方法を正確に説明するのに役立つ情報は見つかりませんでした。

誰か助けてくれますか?

11
user3333708

最初に、モジュール自体のドキュメントのPyinstallerセクションの使用を読むことをお勧めします。

一部のチュートリアルを使用することもできます(例 Matt Borgersonのもの )。

要約すると、次のことを行う必要があります。

  • スクリプトを記述してください、それが機能することを確認してください
  • コマンドラインから実行します

    〜\ pyinstalleryour_file_name。py

  • このコマンドは、your_file_name。specファイルを生成します。ここに、アプリケーションとカスタム設定に必要なすべてのdllを含めることができます( Specファイルの使用

  • .exeアプリケーションに何を含めるかを決定したら、コマンドラインから実行できます。

    〜\ pyinstaller [option1] [option2]your_file_name。py

完全なリスト options をドキュメントで見つけることができます。 pyinstaller.exe --onefile --windowed --icon = app.ico app.pyの例:

  • --onefile:1ファイルのバンドルされた実行可能ファイルを作成します。
  • --windowed:Mac OS XまたはWindowsでコンパイルする場合に選択するパラメーター
  • --icon =:ファイルのアイコンとして使用するファイルを選択します。

py2exeでも非常に簡単にexeファイルを作成できます。

19
mabe02

Pyinstallerへのフルパスを記述してみてください(例= C:\ Users\user\AppData\Local\Programs\Python\Python35-32\Scripts\pyinstaller.exe)

完全なcmd文字列は次のようになります。

C:\Users\user\AppData\Local\Programs\Python\Python35-32\Scripts\pyinstaller.exe --onefile myscript.py

Pythonの経験はあまりありません。シンプルですが便利なスクリプトを書くことができます。 pyinstallerを使用して.exeに変換できました。しかし、作成するプログラムが多いほど、Pythonのバージョン(およびパッケージと仮想環境)が多くなります。最初は何が働いていたのかが突然わからなくなって、とても混乱しました。しかし、あるページから別のページにジャンプすると、私はそれを理解しました。私の投稿は別の初心者を助けることです。 Windowsを使用していますが、一部のルールはおそらく他のシステムでも同じです。私はそれを2020年3月に書いています。Pyinstallerは最新のpythonバージョン3.8になりました)では適切に動作しません。最初にPythonをインストールする必要があります。 3.7。次に、システムのタイプに応じてバージョンを選択します。32または64にすることができます。複数のPythonのバージョンをインストールできます。「py」を入力すると、コンピューターは最新のPythonのバージョンを探します-つまりバージョン番号が最も大きいものです。これは、最初のPythonをインストールしたときに表示されるファイルC:\ Windows\py.exeが原因です。今日の場合、python 3.7、 "py 」はPython 3.7です。ただし、次の日Python 3.8をインストールして「py」と入力すると、Python = 3.8。古いバージョンを使用したい場合は、py -3.7と入力してください。

C:\Users\Ania>py Python 3.8.2(tags/v3.8.2:7b3ab59、Feb 25 2020、23:03:10)[MSC v.1916 64ビット(AM D64)] on win32タイプ "詳細については、「ヘルプ」、「著作権」、「クレジット」、または「ライセンス」をご覧ください。

C:\Users\Ania>py -3.7

Python 3.7.7(tags/v3.7.7:d7c567b08f、Mar 10 2020、10:41:24)[MSC v.1900 64ビット(AMD64)] on win32タイプ「ヘルプ」、「著作権」、「クレジット」または「詳細については、「ライセンス」を参照してください。

次に、プロジェクトで作業するには、そのための仮想環境を作成する必要があります。正しいpythonバージョンを使用することを忘れないでください。最初に、そのためのフォルダーを作成しましょう。

D:\PYTHON>mkdir my_new_great_project

そのフォルダに移動します。

D:\PYTHON>cd my_new_great_project

Venvを作成します。

D:\PYTHON\my_new_great_project>py -3.7 -m venv venv

上記の最初の「venv」は、使用しているpython=モジュールの名前です。2番目の「venv」は、作成している仮想環境の名前です。

Venvをアクティブ化します。

D:\PYTHON\my_new_great_project>venv\Scripts\activate.bat

見るべき:

(venv) D:\PYTHON\my_new_great_project>

これで、pipを使用して、プロジェクトに必要な外部パッケージをインストールできます。

(venv) D:\PYTHON\my_new_great_project>pip install pandas

python 3.7のパッケージが必要であることを「知っている」とPipで確認します。プロジェクトファイルを作成するときは、「venv」フォルダに配置しないでください。

Venvからプロジェクトを実行するには、名前を入力するだけです

(venv) D:\PYTHON\my_new_great_project>great_project.py

プロジェクトが完了したら、すべてが完全に機能し、.exeファイルが必要です。今度は、venvにpyinstallerをインストールします。

(venv) D:\PYTHON\my_new_great_project>pip install pyinstaller

インストール済みの外部パッケージを確認するには、「pip list」と入力します。

(venv) D:\PYTHON\my_new_great_project>pip list

パッケージバージョン


altgraph 0.17今後0.18.2 numpy 1.18.2 pandas 1.0.3 pefile 2019.4.18 pip 19.2.3 PyInstaller 3.6 python-dateutil 2.8.1 pytz 2019.3 pywin32-ctypes 0.2.0 setuptools 41.2 0 6 1.11.14.0

これでvenvからpyinstallerを実行して.exeファイルを作成できます。

(venv) D:\PYTHON\my_new_great_project>pyinstaller --onefile --name my_project great_project.py

これで、プロジェクトは「dist」というフォルダー内の単一の.exeファイルとして使用できます。

誰かのお役に立てば幸いです。

0
aniaszka

こんにちは私はpythonでコードを作成しました。それを使って自分自身をexeに変えました。

変換するファイルと同じディレクトリにあることを確認してください。

import subprocess
import shutil
import os

cmd = input("file name: ") # asks user for filename
extra = input("extra commands? eg -w -F if using two or more put a space between: ") # asks for extra options
suros = "pyinstaller "+ extra + " " + cmd + ".py" # sets run command
current_workin_path = os.getcwd() # gets current working path
dirt = current_workin_path + "/"+ cmd # set current working path for folder creation
os.mkdir(dirt) # creates folder for working path and for a copy
shutil.copy(cmd + ".py", current_workin_path + "/" + cmd + "/" + cmd + ".py") # creats copy of python file in the newly set path
os.chdir(current_workin_path + "/" + cmd + "/") # changes current working path to newly created one
subprocess.run(suros) # runs the command set eariler
os.remove(cmd + ".py") # delete the copy of python file

これが誰かを助けることを願っています。

0
Darthbeaverdog