Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the easy-fancybox domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the urvanov-syntax-highlighter domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the breadcrumb-navxt domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the advanced-ads domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: 関数 _load_textdomain_just_in_time が誤って呼び出されました。lancr ドメインの翻訳の読み込みが早すぎました。これは通常、プラグインまたはテーマの一部のコードが早すぎるタイミングで実行されていることを示しています。翻訳は init アクション以降で読み込む必要があります。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 6.7.0 で追加されました) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114
exe化、pyinstallerでは起動が遅いのでcx_Freezeを使ってみた。 | 診療放射線技師がPythonをはじめました。

exe化、pyinstallerでは起動が遅いのでcx_Freezeを使ってみた。

はじめに

以前、pyinstallerを用いてDICOM画像の匿名化ソフトを作成するときにpyinstallerを用いた記事を書きました。

自分が作成したプログラムをexe化する時にもpyinstallerを用いたのですが、そのファイルの起動が遅いなと感じていました。

ただ、その時はまだ許容範囲内だったのですが最近研究用のプログラムをexe化したらこれがやたらと遅い。。。。

3分ぐらいかかってやっと起動。

これじゃ、、、、、、

exe化できる他のライブラリーが無いかなと探していたらcx_Freezeなるものがあるのを知り使ってみましたのでレポートしてみたいと思います。


広告
デル株式会社

インストール

インストールはpipを用いてインストールしました。コマンドプロンプトを立ち上げて、exe化する仮想環境でpipを実行します。

今回のプログラムは前回構築した仮想環境で作成しているのでそちらにインストールします。

http://radiology-technologist.info/2020/05/17/post-637/
環境構築に関してはこちら!!

まずは、コマンドプロンプトを立ち上げて仮想環境をアクティベートします。以前構築した環境名はv3.6なので以下のコマンドで実行します。

上記コマンドを実行した後、以下の図の様に初めに(V3.6)と環境名が出ていればアクティベートできています。

その後、pipを用いてインストールします。Freezeの ‘F’ が大文字なので気を付けてください。

これで、インストールが完了しました。


広告
HP Directplus -HP公式オンラインストア-

セットアップファイルの作成

pyinstallを使用する際は必要なかったのですが、cx_Freezeを使用する場合はsetupファイルを作成しなくてはいけません。

このサイトを参考にさせて頂きました。

作る場所は、exe化したいプロジェクトのフォルダに作成します。

ここで12、13行目のTCL_LIBRARYとTK_LIBRARYの設定ですが、ここは人それぞれで変わってきます。

tcl8.6とtk8.6のファイルは仮想環境ごとにあります。

私の場合、仮想環境の情報はanacondaがインストールしてあるフォルダのenesの中にあります。場所が分からない場合はPyCharmを立ち上げて「ファイル」→「設定」→「プロジェクト」→「Pythonインタープリター」を開き「プロジェクト・インターぷりたー」に記載されているパスを追っていくと、仮想環境の場所までたどり着きます。そこにtclのフォルダがありますので、そこの「tcl8.6」と「tk8.6」のファイルのパスを指定してあげればOKです。

後は、18行目や、21行目、38行目の設定をして完了となります。

importしているライブラリに関しては、全て書いてしまいました。

また、32行目のexcludesには仮想環境内にインストールしていて、使っていないライブラリを記載しておきました。


広告
BTOパソコン・パソコン関連商品がお買い得!パソコン工房のセール

いざ、exe化!

まずは、コマンドプロンプトを立ち上げディレクトリーをexe化したいフォルダまで移動します。

移動の仕方は’cd 移動先フォルダのパス’で移動できます。

そこで、以下のコマンドを打ちます。

その後、exe化したいファイル名を聞かれますので一番初めの文字を打ち込みTabキーを押していくと目的のファイルが表示されるので、Enterを押すとexe化の処理が始まります。

処理が完了すると「build」というフォルダが出来上がっています。

その中に「exe.win-amd64-・・・」というフォルダがあり、その中にexeファイルがあります。それをダブルクリックすることでプログラムが起動します。

ちなみに、exeファイルだけでは起動しません。なので、移動したい場合はフォルダごと移動し、exeファイルのショートカットをデスクトップなり希望の場所に配置して使用してください。

いかがでしたか?きちんと起動しましたか?


最後に

今回は、cx_Freezeを用いてプロジェクトをexe化のレポートをしました。

pyinstallを用いた場合、3分程度かかっていたものがcx_Freezeを用いることで数秒で起動するようになりました。

正直、setupファイルを作成するのは面倒ですが、その後の起動時間を考えたらcx_Freezeは絶対に使った方がいいと思います。

また、一度作成したsetupファイルは再利用もできるので初めだけの苦労と思えばがんばる気になれますよね。

次回は、cx_Freezeで作成した際に起こったエラー対処を書きたいと思います。


環境

  • windows10
  • python3.6.1
  • Anaconda custom(64-bit)
  • PyCharm2020.2(Communication Edition)

広告
上新電機 パソコン買取サービス

Categories:

,