記事ディレクトリ
1. 問題の概要と解決策。
1) pyinstallerのバージョンの問題
次のコマンドを使用して pyinstaller をインストールすると、最新の pyinstaller がデフォルトでインストールされます。
pip install pyinstaller
ただし、python2.7 の場合は 3.6 までしかサポートされていないため、インストールする際は次の手順に従ってください。
pip install pyinstaller==3.6
2) インストール後も「コマンドが見つかりません」と表示される
理由:
pyinstaller のバイナリ実行可能ファイルが system/bin パスに見つかりません。
端子入力
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin はコロンで区切られたシステム環境パスを返します。これを順番に表示して
、バイナリ ファイル pyinstaller がどのパスにも見つかりません。
解決:
2.1) macOS Catalina(10.15) システム以前。
端子入力
pip show pyinstaller
名前: PyInstaller
バージョン: 3.6
概要: PyInstaller は、Python アプリケーションとそのすべての依存関係を 1 つのパッケージにバンドルします。
ホームページ: http://www.pyinstaller.org
著者: Giovanni Bajo、Hartmut Goebel、David Vierra、David Cortesi、Martin Zibricky
著者の電子メール: [email protected]
ライセンス: 使用を許可する特別な例外を含む GPL ライセンスPyInstaller 非フリー プログラム (商用プログラムを含む) を構築および配布するための
場所:/ユーザー/alexw/ライブラリ/Python/2.7/lib/python/site-packages
必須: setuptools、altgraph、macholib、dis3
必須:
黄色でマークされた文章はコピーして後で使用します。
端子入力
sudo vi ~/.bash_profile
esc を押してから i を押して編集モードに入ります。
ファイルに文を追加する
エクスポート PATH=${PATH}:/ユーザー/alexw/ライブラリ/Python/2.7/bin
黄色のマーク ここに、上記の黄色のマークの文を入力します。
ese を押してから wq を押してファイルを保存します。
端子入力
source .bash_profile
この時点で、このターミナル ウィンドウで pyinstaller を使用できるようになります。ただし、Mac システムが macOS Catalina (10.15) 以降の場合は、ターミナル ウィンドウを再度開くと、そのコマンドが見つからないことがわかります。
2.2) macOS Catalina (10.15) 以降では、システムに手順を追加する必要があります。
まず上記の手順をすべて実行してください。
次に端子入力
sudo vi ~/.zshrc
上記の .bash_profile の 1 行を変更する操作に従い、次の行を追加します。
ソース ~/.bash_profile
保存後、端末入力
source ~/.zshrc
新しいターミナルウィンドウを再度開き、次のように入力します
pyinstaller -v
該当する情報が表示できることが分かりました。
3) ターミナルに pyinstaller を入力するとプロンプトメッセージが表示されますが、パッケージ化時にエラーが報告されます。
pyinstaller を使用してスクリプトをパッケージ化すると、エラーが報告される
属性エラー: 'PyiModuleGraph' オブジェクトには属性 'edgeData' がありません
端子入力
pip install --upgrade altgraph
2. 理由分析
bash と zsh の違いについては、公式ドキュメントを確認してください:
https://support.apple.com/zh-cn/HT208050
複雑すぎると、私も書きたくなくなりますし、あなたも読みたくなくなります。一言で言えば、
ターミナルは pyinstaller を使用してパッケージ化します。実際には、システム環境内で pyinstaller の実行可能バイナリ ファイルを見つけるためですが、
python の環境変数は扱いが難しいことで知られているため、pyinstaller のバイナリ ファイルを見つけることはできません。すべてのシステム パスを通過した後に見つかります。
上記の手順はすべて、pyinstaller が配置されているパスをシステム パスに追加することです。