自作モジュールへのパスの通し方

投稿者: | 2022-07-08

パスが通ってないと、こんなエラーが出る。

importする場所の指定がない場合、pythonはあらかじめ「決まったフォルダ」を探しに行く。

環境変数に登録されたPATHがそれにあたる。

そこにも見つからないため、Module Not Foudeとなる。

解決方法として、pythonへモジュールのある場所を教えてあげればよい。

目次

コマンドラインにおいて

注意)次はコマンドラインから確認、追加する場合(きれPYP39)

pythonインタープリターからとは異なる

<PATHを確認する>
Win
>path (separator is coron)

Mac
$echo $PATH (separator is semicoron)

<コマンドラインからPATH環境変数を変更するやり方(一時的)>

現在のターミナルウィンドウのPATH環境変数に新しくフォルダのパスを追加する

Win
>path C:¥newFolder;%PATH% ←%PATH%は環境変数PATHが展開されるので、その「先頭」にフォルダを追加した
>path
C:¥newFolder;C:¥〜

Mac
% PATH=/newFolder:$PATH ←$PATHは〃
% echo $PATH
/newFolder:/home~

pyファイル、pyインタープリターにおいて

方法1. 環境変数に新しくパスを追加(永続的)

複数の実行ファイルで使いたいとき

自作モジュールを集めたフォルダに格納し、そこへのPATHを環境変数に追加する

・Win

  • ユーザー環境変数の「Path」欄に追加(;)

・Mac

  • ホームフォルダの.bashrcまたは.zshrcへ次の行を追加
    • export PATH=/newFolder:$PATH

方法2. 環境変数に追加済みのパスに配置する(永続的)

複数の実行ファイルで使いたいとき

以下で表示されるPATHに実行ファイルを配置する

>>>import sys
>>>sys.path

方法3. 実行ファイルごとにパスを追加(一時的)

少数の実行ファイルで使いたいとき

自作モジュールをimportする前に、実行ファイル側などに以下を追加する

import sys
sys.path.append("自作モジュールのPATH")

または

import sys
import pathlib
parent_dir = pathlib.Path(__file__).parent <-- __file__ は実行ファイルのPATH
sys.path.append(parent_dir/mylib)         <-- モジュールの場所を変えても有効(相対パスのため)