Windowsインストールパッケージの作成方法

Pythonソフトウェアの更新とインストール

一、起動時の自動更新

このステップは実際には最も簡単です。前の記事「ソフトウェア更新の実装方法」で、私たちはmain()という関数を使って全体のプロセスをカプセル化しました。したがって、私たちのソフトウェアコードのメインプログラムでこの関数をインポートし、他のステートメントの最も前に配置するだけで済みます。

# 関数のインポート
from update import main
# 中間コードは省略
 ...
if __name__ == '__main__':
    # 最も前に配置
    main()
    app = MainWindows()
    app.mainloop()

PyInstallerを使用したファイル作成

  1. 最も簡単な方法は:
pyinstaller -w -F main.py

パラメータの説明: - -F は単一ファイルを生成することを意味します。上記のコマンドはmain.exeを生成します - -w はコンソール表示をしないことを意味します。私たちがテスト時によく見る黒いcmdウィンドウは、ユーザーが使用する際には表示したくないものです。したがって、コンソールを削除します - -p はカスタムロードクラスパスを意味します。通常の場合は不要 - -i は実行可能ファイルのアイコンを意味します この方法で生成されたファイルは直接実行可能ファイルであり、もちろんインストールも不要です。私たちがよく言う緑色ソフトウェアはこのようなものです。インストール不要で、手に入れたらすぐに使えます。さらに私たちは親切にも自動更新機能を搭載しています。

  1. フォルダー方式:
pyinstaller -w main.py

実際にはこれも簡単で、-Fを付けないだけで直接フォルダーを生成します。

パッケージングが完了すると、distフォルダーが生成されます。開くと中にmainフォルダーがあり、私たちのコマンドのメインファイル名と同じです。さらにmainを開くと、中にmain.exeがあります。これが私たちの通常の実行ファイルで、ダブルクリックして実行できます。

えっ、どうしてエラーが出た?これは大規模な事故現場です!!! 実際、問題は非常に単純です。私たちの更新ファイルを覚えていますか?覚えていない場合は前の記事「ソフトウェア更新の実装方法」を参照してください。ソフトウェアの起動時に最初に実行されるのは自動更新ですが、私たちの更新ファイルにはjsonが必要です。したがって、起動時にエラーが発生します。ファイルをフォルダーに入れて、もう一度試してみてください。

これで正常に実行できるようになりました。実際、皆さんが注意深く見れば、ここでの自動更新には問題があることに気づくはずです。前の記事は実際には単一の実行ファイルを対象としていましたが、フォルダーではありません。もちろん、ここでは単なるデモンストレーションです。皆さんが各自で考えれば、フォルダー向けの自動更新も作れるはずです。原理は同じです。

二、ソフトウェアをインストール可能にする方法

上記の内容は主に前提の確認と設定であり、この部分のための準備です。なぜフォルダー形式でパッケージングするのでしょうか?次に使用するツールがフォルダー向けだからです。また、単一の実行ファイルに比べて、フォルダー形式の方がサイズが小さくなります。

HM NIS Editの使用

このソフトウェアを使用すると、非常に正式なインストールパッケージを作成できます。皆さんがよく使うQQインストールパッケージのようなものです。次に、一緒に見ていきましょう。まず、HM NIS Editコンパイラをダブルクリックして開きます。

アイコンは何ですか?分かりませんが、イカのような感じです。ソフトウェアインターフェースに入ります。ファイルをクリックして新規スクリプト:ウィザードを選択します。

次へをクリックし、アプリケーション情報を入力します:

次へを続け、基本的にデフォルトのまま変更不要ですが、インストーラーの言語はsimpChinese(簡体中文)を選択する必要があります。さもないと、インストール時に文字化けが発生します。

次に次へ、このステップでは、アプリケーションのデフォルトディレクトリはユーザーがインストールする際のデフォルトオプションです。私たちはユーザーが変更できるように設定しました。ライセンスファイルは、ユーザーがアプリケーションをインストールする際に表示されるアプリケーションに関する説明で、使用範囲をライセンスするものです。私たちは適当に書きました。

次へ後、以下の最初の画像が表示されます。ファイルパスを変更をクリックし、ここでプログラムが存在するディレクトリ全体を追加します:

設定が完了したら次へをクリックします。ここは直接デフォルトのままにします:

第七ステップもデフォルトです:

第八ステップはアンインストール関連の設定で、必要に応じて設定できます:

最後に、スクリプトを保存し、保存が完了すると、スクリプトが自動的にコンパイルされます:

前の設定でほとんどの要件を満たせますが、私たちのソフトウェアはいくつかのライブラリをインポートしており、これらのライブラリはサブフォルダーにあります。以下のようになっています:

そして、これらのサブフォルダーは、私のテストで、前の設定を通じて直接インストールフォルダーにインストールできないことがわかりました。その結果、ソフトウェアが起動できません。したがって、コンパイルスクリプトで以下の変更を行う必要があります:

# setup.exeファイルにコンパイルする際の操作
Section "MainSection" SEC01
  SetOutPath "$INSTDIR"
  SetOverwrite ifnewer
  File "main\main.exe"
  File /r "main\*.*" # ここが変更後の内容、/rシンボルを追加すると再帰的にコピー
  CreateDirectory "$SMPROGRAMS\敦煌ツール"
  CreateShortCut "$SMPROGRAMS\敦煌ツール\敦煌ツール.lnk" "$INSTDIR\main.exe"
  CreateShortCut "$DESKTOP\敦煌ツール.lnk" "$INSTDIR\main.exe"
SectionEnd

# アンインストール時の操作
Section Uninstall
  Delete "$INSTDIR\${PRODUCT_NAME}.url"
  Delete "$INSTDIR\uninst.exe"
  Delete "$INSTDIR\*.*" # 変更内容、インストールフォルダー内のすべてのコンテンツを削除
  Delete "$INSTDIR\main.exe"

  Delete "$SMPROGRAMS\敦煌ツール\Uninstall.lnk"
  Delete "$SMPROGRAMS\敦煌ツール\Website.lnk"
  Delete "$DESKTOP\敦煌ツール.lnk"
  Delete "$SMPROGRAMS\敦煌ツール\敦煌ツール.lnk"

  RMDir "$SMPROGRAMS\敦煌ツール"
  RMDir /r "$INSTDIR\*.*" # 変更内容、インストールフォルダーを完全に削除

  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
  SetAutoClose true
SectionEnd

三、インストールテスト

上記のステップを経て、すべての設定が正しければ、コンパイル完了後にインストールプログラムが直接起動します。実際、保存フォルダーにはsetup.exeファイルがあり、ダブルクリックして起動することもできます。

第一ステップ、ソフトウェアの起動:

第二ステップ、前述のライセンスファイルの内容はここに表示されます:

第三ステップ、インストール先のアドレスを選択し、ユーザーは自分で変更できます:

第四ステップ、インストール開始:

第五ステップ、インストール完了、終了または直接私たちのソフトウェアを実行できます:

この時、スタートメニューにも対応するアンインストールツールがあります:

第六ステップ、ソフトウェアを実行し、私たちのソフトウェアインターフェースが表示され、入力内容をテストしても正常に使用できます:

第七ステップ、アンインストールテスト、ここではインストールディレクトリからツールをダウンロードして操作しています。皆さんがスタートメニューから操作しても、効果は同じです:

最後に

これで、私たちが作成したソフトウェアを正式なソフトウェアとしてパッケージングできました。どうですか?覚えましたか?何か分からないことがあれば、私の公式アカウントをフォローして一緒に議論しましょう。記事の例は百度网盘にアップロード済みです。キーワード:インストールソフトウェアを返信して取得してください。

タグ: Python PyInstaller HM NIS Edit Windowsインストール ソフトウェアパッケージング

7月15日 01:35 投稿