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

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

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

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Python

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

Q&A

解決済

1回答

1195閲覧

なぜか同じパスが2回書かれている

cunwe

総合スコア65

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Python

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

0グッド

0クリップ

投稿2021/09/16 18:11

編集2021/09/17 02:03

ターミナルでecho $PATHを実行すると

/Users/m.t./.pyenv/shims:/usr/local/Cellar/pyenv-virtualenv/1.1.5/shims:/Users/m.t./.pyenv/bin:/bin:/sbin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/local/bin/nodebrew:/Users/m.t./.npm_global/bin:/Users/m.t./.pyenv/shims:/usr/local/Cellar/pyenv-virtualenv/1.1.5/shims:/Users/m.t./.pyenv/bin:/bin:/sbin:/usr/bin:/usr/local/bin:usr/sbin:usr/local/bin/nodebrew:/Users/m.t./.npm_global/bin:/usr/local/Cellar/pyenv-virtualenv/1.1.5/shims:/Users/m.t./.pyenv/bin:/bin:/sbin:/usr/bin:/usr/local/bin:usr/sbin:usr/local/bin/nodebrew:/Users/m.t./.npm_global/bin:

と表示され、なぜか同じパスが2回書かれています。
また、.zshrcの中身は

export PS1='m.t.% ' export PATH=/bin:/sbin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/local/bin/nodebrew:$HOME/.npm_global/bin:$PATH export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" eval "$(pyenv init --path)"

となっており同じ記述を複数回してません。また、which -a python3と打った時に

/Users/m.t./.pyenv/shims/python3 /usr/bin/python3 /Users/m.t./.pyenv/shims/python3 /usr/bin/python3 /usr/bin/python3

と同じパスが3回も現れたりするのも気持ち悪いです。「ターミナル パス 複数」などで調べたのですが全然ヒットしなく困っています。原因と対処法を教えていただけると嬉しいです。よろしくお願いいたします。

環境

macOS BigSur 11.5.2 シェル:zsh

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

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

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

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

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

jbpb0

2021/09/17 00:45

pyenvの設定が関係してるかもしれないので、タグに「Python」を追加した方がいいかも
cunwe

2021/09/17 02:02

ご助言ありがとうございます。追加いたします。
bsdfan

2021/09/17 02:29

.zprofileというファイルがあったら、そちらに同様のコマンドが書かれていないか確認してみてください。 (pyenvのドキュメントでは、eval "$(pyenv init --path)" は、.zprofileに書くようになっています)
cunwe

2021/09/17 03:03

ご質問ありがとうございます。.zprofileというファイルはございません。
otn

2021/09/17 05:02

とりあえず、grep -l PATH= ~/.* 2>/dev/null で何が表示されますか?
cunwe

2021/09/17 06:21

otnさん、ご質問ありがとうございます。 /Users/m.t./.zsh_history /Users/m.t./.zshrc と表示されますね。
jbpb0

2021/09/17 07:01

Macからログアウトしてからログインして、ターミナルを起動してすぐに echo $PATH を実行した場合でも、同じものが二つも三つも入ってるのでしょうか?
cunwe

2021/09/17 10:51

macからログアウトしたことがないのですが、ログアウトする前にした方がいいことはございますでしょうか?今のpythonプロジェクトが使えなくなるとかないですかね...?
jbpb0

2021/09/17 10:56

ファイルやディレクトリが勝手に消えたりはしないので、これまでにやったコマンド操作と同じことをもう一度やればいいはずですが、そこを間違えたり、何かやり忘れたりしないかは、他人には分かりません そこが心配でしたら、とりあえずは、ログアウトせずに新規にターミナルを起動して、そのターミナルですぐに echo $PATH を実行してみてください
cunwe

2021/09/17 11:58

一旦、ターミナルだけ落として再起動してecho $PATHしてみましたが結果は同じですね、、
jbpb0

2021/09/17 12:18

質問のでは同じのが3回繰り返してますが、ターミナル起動してすぐだとどうですか?
cunwe

2021/09/17 12:23

お、今pythonプロジェクトを立ち上げてるディレクトリで$which -a python3を実行すると下記のようになりちょっとマシになってますね /Users/m.t./.pyenv/shims/python3 /usr/bin/python3 /usr/bin/python3
jbpb0

2021/09/17 12:38

「.zshrc」を一旦別のファイル名に変えて、その状態で別のターミナルを起動して echo $PATH を実行して、その時に表示されたものはOSが設定済みだから、「.zshrc」で再度設定する必要はないです ファイル名を「.zshrc」に戻して、「export PATH=…」の行から(再設定が必要無い)不要な部分を削除して、その状態で別のターミナルを起動してすぐに echo $PATH を実行したら、どうなりますか? その時点では重複が無くなると思うのですが
cunwe

2021/09/17 13:05

教えていただきましたように不要な部分を消し、echo $PATHを実行したら /Users/m.t./.pyenv/shims:/usr/local/Cellar/pyenv-virtualenv/1.1.5/shims:/Users/m.t./.pyenv/bin:/usr/local/bin/nodebrew:/Users/m.t./.npm_global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin と出力されました。重複は無くなったようです!
cunwe

2021/09/17 13:06

$which -a python3を実行した際も /Users/m.t./.pyenv/shims/python3 /usr/bin/python3 と重複がなくなりました、ありがとうございます!
cunwe

2021/09/17 13:18

ちなみにパスには優先順位があるそうなのですが、今回の私のecho $PATHの出力結果を例にご教授いただいてもよろしいでしょうか?
jbpb0

2021/09/17 23:57 編集

> パスには優先順位がある 環境変数PATHの先頭(左)に近いものが優先されるので、コマンド名が被った場合に優先したい順番に並べます which -a python3 の結果で一番上に表示されるのが使われますけど、それはPATH中で「/usr/bin」よりも「/Users/m.t./.pyenv/shims」の方が先頭(左)側だから
cunwe

2021/09/18 10:11

そういう見方なんですね、ありがとうございます!
guest

回答1

0

ベストアンサー

「.zshrc」を一旦別のファイル名に変えて、その状態で別のターミナルを起動して

sh

1echo $PATH

を実行して、その時に表示されたものはOSが設定済みだから、「.zshrc」で再度設定する必要は無いです

ファイル名を「.zshrc」に戻して、「export PATH=…」の行から(再設定が必要無い)不要な部分を削除して、その状態で別のターミナルを起動してすぐに

sh

1echo $PATH

を実行したら、重複が無くなってると思います

投稿2021/09/18 10:09

jbpb0

総合スコア7653

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問