git0129
@git0129

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

[Mac] シェルのコマンド実行について

解決したいこと

・フルパス指定じゃないと実行されない設定を修正したい。

macでpythonの開発を始めました。
shell内でフルパス実行でないと反映されない設定を修正したいです。
解決方法を教えてください。

発生しているエラー

<エラー>
streamlit hello
zsh: command not found: streamlit

<現在の解決法(フルパス指定実行)>
/Users/《ユーザー名》/Library/Python/《Pythonのバージョン》/bin/streamlit hello 
→無事実行できる

こちらはstreamlitのインストールの際のシェルです。
実行できたので一応問題ないのですが、他のサイトや教材を参考にした際、
どれもフルパス実行でないので比較した際にわかり辛いです。

今はJupyter Notebookをインストールしたいのですが、
またもやフルパス指定出ないとダメなのか、インストールの際にエラーになってしまいます。

Jupyter Notebookのインストール時エラー

python -m pip install --upgrade pip
python -m pip install jupyter
zsh: command not found: python
zsh: command not found: python

自分で試したこと

環境変数がちゃんと設定されていないのか、以下のサイトを参考に調べて設定してみようとしたのですが、
"独自"の環境設定 という部分が気になり、誤っていたら修正方法がわからなくなってしまいそうなため、まだ何も実行できておりません。

参考にしたサイト
https://qiita.com/redrabbit1104/items/38a2011c27048ca61794

0

2Answer

自分もmacを使っています。pythonではいかずpython3にして使っています

python3 -m pip install --upgrade pip
python3 -m pip install jupyter

でどうでしょうか

0Like

python3が動くなら、pip3 が使えるはずです。

pip3 install --upgrade pip
pip3 install jupyter

pythonもpython3もフルパスでしか起動できないのなら、この下の説明をみてください。


自分の環境について;
pythonのインストール方法がいくつかあり、今となっては自分もどうやってインストールしたのか覚えていません。

普段pythonを使っていますが、調べてみると、python と python3 の両方がインストールされていましたが、バージョンはどちらも同じでした。(pipもpip3も)

python
% python --version
Python 3.11.4

% which python
/opt/homebrew/opt/python@3.11/libexec/bin/python

% python
Python 3.11.4 (main, Jul 25 2023, 17:36:13) [Clang 14.0.3 (clang-1403.0.22.14.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D

% pip --version
pip 23.2.1 from /opt/homebrew/lib/python3.11/site-packages/pip (python 3.11)

% which pip
/opt/homebrew/opt/python@3.11/libexec/bin/pip

homebrewでインストールしたみたいです。

python3
% python3 --version
Python 3.11.4

% which python3
/opt/homebrew/bin/python3

% python3
Python 3.11.4 (main, Jul 25 2023, 17:36:13) [Clang 14.0.3 (clang-1403.0.22.14.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D

% pip3 --version
pip 23.2.1 from /opt/homebrew/lib/python3.11/site-packages/pip (python 3.11)

% which pip3
/opt/homebrew/bin/pip3

PATHの設定を確認すると、python、python3の両方のパスが入っています(起動できるので当たり前ですが)。

PATH環境変数
% echo $PATH|tr ':' '\n'
/opt/homebrew/opt/python@3.11/libexec/bin
/opt/homebrew/bin
/usr/local/opt/tcl-tk/bin
/usr/local/sbin
/opt/homebrew/opt/python@3.11/libexec/bin
/opt/homebrew/bin
/usr/local/opt/tcl-tk/bin
/usr/local/sbin
/opt/homebrew/bin
/opt/homebrew/sbin
/usr/local/bin
/System/Cryptexes/App/usr/bin
/usr/bin
/bin
/usr/sbin
/sbin
/opt/X11/bin
/Library/Apple/usr/bin
/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin
/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin
/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin
/Users/USERNAME/.nodebrew/current/bin
/Users/USERNAME/.nodebrew/current/bin
/Library/Java/JavaVirtualMachines/liberica-jdk-17-full.jdk/Contents/Home/bin

(無害ですが、重複したパスが設定されているのは気になります・・・)

質問者さんの環境だと、以下のコマンドを打つと、フルパス指定しなくても起動できるようになります。

export PATH=$PATH:/Users/《ユーザー名》/Library/Python/《Pythonのバージョン》/bin

ただし、これだけだと、ターミナルを起動する都度、コマンドを打たなければならないので、~/.zshrcに書いておけば恒久的な設定になります。
なんですが、ちゃんとした手順でpythonをインストールしたのなら、PATHの設定は自動で行われるはずです。インストール手順を確認された方が良いかも。

python --versionと打つと、バージョンを確認できます。
which pythonと打つと、フルパスが確認できます。
どちらもパスが通っている場合の話しでして、
パスが通っていない場合は、zsh: command not found: pythonエラーとなります。

これに限らずなんですが、コマンドやライブラリをインストールしたときは、その手順を残しておかないと、後で苦労すると思うようになりました・・・(再インストールやアップデートで困ることが多い・・・)


蛇足ですが、なぜpython3があるのかというと、数年前まではpythonはversion2が主流でした。その後version3が登場した時に、それまでのpythonと区別するためにpython3となりました。
最近ではpython3が主流のため、pythonの実態がpython3に変わった経緯があります。
(python2向けに書かれたコードはpython3では動かないことが多い(その逆も))

0Like

Your answer might help someone💌