質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.40%
PyInstaller

PyInstallerは、Pythonのスクリプトを一括でWindowsなどで動く実行可能ファイルに変換できるツールです。このツールを用いることで自作のPythonプログラムを別で使用する場合でもPythonをインストールする必要がありません。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

258閲覧

pyinstallerでアプリを作成したが、使用したパッケージが動的リンクなのか確認したい

omikuji-iot

総合スコア48

PyInstaller

PyInstallerは、Pythonのスクリプトを一括でWindowsなどで動く実行可能ファイルに変換できるツールです。このツールを用いることで自作のPythonプログラムを別で使用する場合でもPythonをインストールする必要がありません。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2024/07/16 05:00

pyinstallerでアプリを作成しています。まだ環境構築と一式パッケージをimportしてexe化してみただけですが。

▼使用したパッケージ(pip installしたもの)
・pyside6
・pyserial

ライセンスも関わるのですが、各パッケージが動的リンクとなっていることを確かめたいと思っています。

発生している問題・分からないこと
生成した『dist\App名_internal』フォルダにpysideのフォルダはあったので、そちらは動的リンクに思えますが、pyserialの方はフォルダが生成されておらず、判断し兼ねています。

pyinstallerの知見や経験をお持ちの方を対象に、どのように確認していけばよいか教えていただけないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bsdfan

2024/07/19 02:29

LGPL を気にされているのでしたら、「LGPL pyinstaller」で検索すると、いろいろ参考になると思います。 exe の中に何が入っているかを確認するとかなら下記が具体的に書かれています。 https://spoonblog.hatenablog.com/entry/2020/12/20/075838 ※pyinstallerの場合、リンクしているわけではないので、厳密には動的リンクとは言わないです
omikuji-iot

2024/07/19 22:25

ありがとうございます。ご推察の通りLGPLを気にしています。 記事を読んだところ、リバースエンジニアリングを許可する(=リバースエンジニアリングできる)ことが重要だと理解しました。 LGPLのモジュールをexeにまとめるのは避けた方がよさそうですね。
guest

回答1

0

自己解決

bsdfanさまのヒントをもとに検索し理解、解決。

▼メモ(私の理解、解釈)▼

・pyinstallerを実行すると、pythonコード(pyc)はexeに取り込まれる。
・デフォルトの「noarchive=false」だと、one-fileモードでexeにpycが取り込まれる。
(一方でtrueのときは、one-dirモードという。このとき、pycはexeに取り込まれずフォルダにそのまま同梱される)
・one-fileモードは実行時に取り込んだpycを展開する。結果one-dirモードと同様の動作をする。
・one-fileモードが動的リンクなのか、静的リンクなのかはそのときのニュアンスも含む。
(書き手の背景で意味が異なるので異論を呼びやすい印象)
本質的には動的リンク、という意見も誤ってはいない。
・リンクに関して気にする人は、たいがい配布に伴うLGPLライセンスへの関心から。
・LGPLの”リバースエンジニアリングを禁止してはならない”の解釈にもよるが、
無難なのはone-dirモードでpycファイルを置き換えることができるようにすること。
one-fileモードは故意にリバースエンジニアリングを妨げライセンスに反している、と捉えることもできるので。

※同じ内容で悩んだ人の参考になれば。
異論等ありましたらレスいただけるとありがたいです。

投稿2024/07/20 23:01

omikuji-iot

総合スコア48

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.40%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問