LoginSignup
0
1

More than 1 year has passed since last update.

環境変数を追加してもPATHがうまく機能しない(Windows)

Last updated at Posted at 2021-05-16

PATHが機能しない

この記事は、PATHが機能しない状態に陥った人向けです。
環境変数に追加しても上手くPATHが機能しない場合の対処法を知ったので共有します。


環境変数にPATHを追加する

まずは知っている方も多いかもしれませんが、環境変数にPATHを追加していく手順を紹介します。

windowsキーを押す⇒「環境変数」と入力する

スクリーンショット (3).png

このような画面が出るので、システム環境変数をクリックする。
その後、次のような画面が表示される。

キャプチャ.PNG

環境変数ボタンをクリックすると

キャプチャ.PNG

この画面が出てきます。
これは環境変数を弄れる画面ですが、大抵はPATHを弄る程度しか開かないです(他に開く場合は、相当特殊な場合だと思います)。
ここで、〇〇のユーザー環境変数にあるPathをダブルクリック、あるいはPathをクリックしてから編集ボタンを押します。

キャプチャ.PNG

この画面が表示されると思います。
このとき、新規ボタンをクリックし、新たにPathを通すことが可能になっています。
手打ちでもいいと思いますが、心配な方はPATHを通したい部分をエクスプローラーで開いてください。
キャプチャ2.PNG

エクスプローラーで、この画像のような場所があるので、赤い枠の場所をクリックします。そうすると、PATHの絶対参照先が表示されるので、それをコピーします。その後、先ほどの環境変数の場所を開き、新規ボタンをクリックし、ペースト(CTRL+V)します。こうしてPATHが追加されます。


PATHが複数通っている可能性がある場合

さて、ここからが本題です。
参考書などにPATHの通し方が書いてあっても、実際に使えない場合が発生します。
それがPATHが複数ある場合です。

PATHが複数あるかの確認方法

OSがMacやLinuxの方はwhichコマンドを使うのがセオリー化と思われます。しかしながら、WindowsにWhichコマンドは搭載されていない可能性が高いです。そのため、代わりとなるコマンド(?)が存在しています。それがwhere.exeです。
実際に、コマンドプロンプトで使った結果を貼っています。

キャプチャ.PNG

このようにpythonのPATH(参照先)が3つもあることが分かります。この状態ですと、通ってほしいPATHが使われない可能性が高いです。これが原因で本来自分が行いたいことができていません。
ではどのように対処すればいいのでしょうか?

以下、対処法を記述します。


対処法その1(PATH先を特定し、環境変数から削除する)

これはオーソドックスかもしれませんが、意外と忘れがちだったりします。(体験談)

これを行うには、先ほどの環境変数の編集場所を開きましょう。
キャプチャ.PNG

その後、消したいPATHをクリックし、削除ボタンをクリックすることで消えます。

注意点

注意点として、削除したPATHは基本的にコンピュータ上から削除されます。そのため、消す必要がなかったものを消したとき、メモを残さなかったら悲惨な目に遭います。

本題に戻ります。

実際に削除して、where.exeで検索すると消えています。
キャプチャ.PNG

このようにして、大抵は環境変数の余計なPATHを削除することで参照先を一つのみにします。


対処法その2(参照先に移動し、消去する)

次の対処法として実際に参照先の場所に飛び、そのファイル方法を紹介します。
これは、環境変数に設定していないにも関わらず、なぜかwhere.exeでPATHが通っている方限定だと思います。
やり方はいたって簡単です。

エクスプローラーを開く⇒参照先のファイルまで移動⇒ファイルを消す

これだけです。
ただ、これも問題があります。ピンポイントでそのファイルを消すので、もしそのファイルが必要だった場合、バックアップしていないと使えないことです。
そのため、こちらはUSBやクラウドにファイルを移すことで、いざ何かあったときに使えることをお勧めします。また同時に、どこにあったのかメモすることも必要です。


そもそもPATHが通らない場合

はい、最後の対処法です。この方法はつい最近、私自身が体験したものです。
AnacondaのPathを通してVscodeつなごうと四苦八苦していたら、酷い目に遭いました。なんと、sshやlsコマンドが使えなくなっていたのです。滅茶苦茶焦りました。再び環境変数に追加したりなんやりしたのですが、うまく解決できませんでした。そのため、最終手段として、絶対参照を行う方法を知りました。

一例として、現在の私はsshを使う代わりにC:\Windows\System32\OpenSSH\ssh.exeを使っています。これでssh接続を行っている場合と同等の状態となります。そのためssh 〇〇と打つことで、今まで通りの動作を行うことができました。
しかしながら、非常に面倒です。できれば使いたくはありませんし、解決したいです。もし、この解決を知っている方はコメントに直せそうな方法をいただけると幸いです。


最後に

この環境変数の問題は初心者の私たちには非常に面倒で、解決するのが困難な問題です。そのため、この記事の方法以外で解決した場合には良ければどういった方法で解決したのか教えていただきたいです。


参考にした記事

which command相当をWindowsで実行する方法 - Qiita

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1