混乱するデータサイエンティストのためのPATH変数:管理方法

Managing PATH Variables for Data Scientists in Chaos

WindowsとUnix系システムの両方でPATHを理解し、それにパスを追加する方法を理解する

Image by me with Midjourney

時々、StackOverflowの人たちは自分たちの頭の上にコンパスがくっついているように感じます。彼らはいつもPATHを見つけるようです。

私はそれがあなたのPATHにないと思います。あなたはPATHをめちゃくちゃにしたかもしれません。実行可能ファイルがPATHに含まれているか確認してください。

「私は、PATHって何?」私は、こんな文を読むたびにいつも赤面しながら言っていました。今では、私はデータサイエンスの旅を始めてから3年以上が経ち、それが何なのか完全に理解しています。ほぼ。

そして、この記事では、WindowsとUnix系システムの両方でこの混乱する環境変数を管理する方法を教えたいと思います。

さあ、始めましょう!

コマンドにもパスがあります

あなたが最もよく使うターミナルコマンドは何ですか?疑いようもなく、私のものはgitです。私は記事を書きながら頻繁にコミットを行うからです。

私が質問している理由は、ほとんどのターミナルコマンドにもオペレーティングシステム内に独自のパスがあるからです。そのパスを見つけるには、which valid_command_nameを実行するだけです。たとえば、ここに私のgitインスタンスのパスがあります。

$ which git  # In windows, use `where`/usr/bin/git

上記は絶対パスであることに気づくかもしれません。しかし、それは何のためのパスなのでしょうか?

実行可能バイナリファイルです!(Windowsの場合、.exeファイルパスが表示されます)

それは、gitコマンドが実行されたときに何をするかに関する指示を含んでいます。すべてのターミナルコマンドは、特定のタスクを実行する形式のシェルスクリプトまたは実行可能ファイルです。

たとえば、clearcattouchなどの組み込みターミナルコマンドにwhichコマンドを試してみると、絶対パス(whichコマンド自体も含む)が表示されます。

実行可能ファイルのパスを取得したら、次のように完全なパスでコマンドを実行できます。

$ /usr/bin/git status -s  # the same as `git status -s`M 2023/6_june/7_path/dump.ipynb

そして、それは機能します!しかし、ここで興味深い点は、どのようにしてgitという単語が絶対パス/usr/bin/gitと同等になるのでしょうか?gitはただの単語です。

あなたのコンピュータがどのようにしてたくさんのコマンドの完全な実行可能ファイルのパスを知り、たった1つのキーワードで実行できるのか、どうやって知っているのでしょうか?

(これがユーレカの瞬間です!)

PATH変数を使用することによって!

さあ、PATHを見てみましょう!

PATHは、絶対パスを保持する変数であり、ほとんどのターミナルコマンド、組み込みのものであろうとユーザーがインストールしたものであろうと、ほとんどのターミナルコマンドを実行するために必要です。

conda env createなどの任意のコマンドを入力すると、オペレーティングシステムはPATH変数内にあるcondaという実行可能ファイルを探します。実行可能ファイルが見つからない場合、command not foundエラーが返されます。

$ unknown_commandunknown_command: command not found

PATH内のパスを一度に印刷することができます。

Unix系システムの場合:

$ echo $PATH/home/bexgboost/.local/bin:/home/bexgboost/anaconda3/bin:...

Windowsの場合:

$ ECHO %PATH%C:\Python39\Scripts\;C:\Python39\;C:\WINDOWS\system32;...

PATH内の各パスは、Unixではコロン、Windowsではセミコロンで区切られています。

これらのパスのおかげで、システムにインストールされた実行可能ファイルの数十の絶対パスを覚える必要がありません。

WindowsでのPATHの操作

PATH変数の編集は、Unix系システムと頑固なWindowsでは異なります。このセクションは、WindowsでPATH変数を管理する方法についてです。

PATHで最も一般的な操作は、新しいパスを追加することです。たとえば、C:\Users\user\Desktop\articlesディレクトリをPATHに追加するには、管理者権限でコマンドプロンプトまたはPowerShellを開き、次のコマンドを実行します。

$ setx PATH "%PATH%;C:\Users\user\Desktop\articles"

しかし、setxコマンドは慎重に行わないとPATHが大きく狂ってしまう可能性があるため、Windowsで安全な方法はシステムプロパティウィンドウを介してパスを追加することです。

PATHに新しいパスを追加する手順とGIFを以下に示します。

  1. システムの詳細設定を編集する」を検索して、最初の結果をクリックします。
  2. ポップアップウィンドウから「環境変数」をクリックします。
  3. 新しいパスが現在のユーザーまたはシステム全体に追加されるかを決定します。
  4. ユーザーの環境変数」または「システム環境変数」の下にある「Path」変数までスクロールします。
  5. それを選択して編集をクリックします。
  6. 新しいポップアップウィンドウで、「新規」をクリックし、新しいパスを貼り付けます。たとえば、C:\Users\user\Desktop\articles
  7. OKを3回クリックします。
GIF by me.

最終ポップアップウィンドウから、パスの削除や順序の変更もできます(順序の重要性に関する最終セクションを参照してください)。

UnixでのPATHの操作

Unix系システムでは、新しいパスをPATHに追加するのは簡単です。

たとえば、/home/bexgboost/articlesパスを追加するには、次のコマンドを実行するだけです。

$ export PATH="/home/bexgboost/articles:$PATH"

新しいパスはPATHの最初に追加されます。末尾に追加するには、$PATHの場所を変更する必要があります。

$ export PATH="$PATH:/home/bexgboost/articles"

ただし、新しいパスは現在のターミナルセッションの期間だけ追加されます。PATH環境変数に永続的に追加するには、exportコマンドをシェル構成ファイルに追加する必要があります。

使用しているシェルに応じて、特定の構成ファイルが異なります。

  • Bashの場合: ~/.bashrcまたは~/.bash_profileexportコマンドを追加します(.profileについてはこちらを参照してください)。
  • Zshの場合: ~/.zshrcexportコマンドを追加します。
  • Fishの場合: ~/.config/fish/config.fishexportコマンドを追加します。

リストから自分自身を選んだら(ここでは.bash_profileを選択します)、次のechoコマンドを使用します。

$ echo 'export PATH="$PATH:/home/bexgboost/articles"' >> ~/.bash_profile

次に、source ~/.bash_profileで構成ファイルを再読み込みして完了です。

パスの順序

PATH変数内のパスの順序は、コマンドやプログラムを実行するときにディレクトリが検索される優先順位を決定します。

ターミナルにコマンドを入力すると、オペレーティングシステムはPATH内の各パスを左から右に順番にチェックして実行可能ファイルを探します。複数のディレクトリに同じ名前の実行可能ファイルが含まれている場合、最初に見つかったものが使用されます。

例えば、システムに複数のPythonバージョンがある場合、PATH内の最も左側にあるPython実行ファイルがターミナルでpythonを実行する際に使用されます。

結論

データサイエンスやMLの世界では、ターミナルはしばしば見落とされがちです。代わりに、オンラインコースやブートキャンプはVSCodeやJupyterLabのような輝くIDEに初心者の注目を引きつけます。

しかし、いつか必ず訪れるのが、彼らが自分自身のマシン上で錆びついたシェルを開く時です。それが彼らがPATHで巨大な障壁にぶつかるときです。

この記事があなたがその障壁を粉々に砕くことを助けることを願っています。

お読みいただきありがとうございます!

この記事、そしてその奇妙な文体が好きですか?同じような記事に数十もアクセスできたらどうでしょうか?しかも、輝かしい、魅力的で機知に富んだ筆者(それは私です、という意味です:)から書かれたものです。

わずか4.99ドルの会員費で、私の物語だけでなく、VoAGIの最も優れた知識の宝庫にアクセスできます。そして、私の紹介リンクを使うと、私の仕事をサポートしてくれたことに対する私の超新星の感謝とバーチャルハイファイブを受け取ることができます。

VoAGIのメンバーとして、あなたの会費の一部があなたが読んだ作家に送られ、あなたはすべての物語に完全アクセスできます…

ibexorigin.medium.com

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more