LoginSignup
38
30

More than 3 years have passed since last update.

Python内のデフォルトパスを通す方法(Windows, Linux)

Last updated at Posted at 2019-01-27

やりたいこと

自分のpyファイルをsysなどのモジュールのようにimportして使いたい。

次のような書き方を、

import sys
sys.path

例えば自分が作ったmypy.pyでもやりたい。

import mypy
mypy.func()

つまり、Pythonの中でパスを通したい

2019年の今、色んなページにこの方法(全部または一部)が書かれていますが、ちょっとハマってしまったのでQiitaに書きます。

venv仮想環境を作るほどでもないときに使うのだと思います。

方法

PYTHONPATHというPythonが使用する環境変数があります。

PYTHONPATHの値に、自分のpyファイルが置いてあるフォルダのパスを入力すればOKです。

PYTHONPATHの公式の説明が読みたい方は、こちらへ。

WindowsでPYTHONPATHを新規作成する

例えば、自分のpyファイルmypy.pyC:\scriptにあるとします。

フォルダ構成は次のようなものだとします(sub_scriptフォルダはsub-scriptのように-を含むとエラーになりますので注意)。

C:
    \script
        \mypy.py
        \mypy2.py

        \sub_script
            subpy.py

エクスプローラーを開いて、

左ナビゲーションバーのPCを右クリック > プロパティ > システムの詳細設定 > 環境変数 > 新規

にて環境変数PYTHONPATHを入力し、値にフォルダのパスを入力します。

image.png

複数のフォルダを指定したい場合は、C:\script;C:\script2のように;つなぎです。

そして、もし、SpyderやAnaconda Promptを起動していたら、再起動してください(Windowsの再起動は不要です)。

パスが通せたか確認する

その後、

import sys
sys.path

を実行すれば、C:\\scriptがパスに追加されていることが確認できます(\は自動で\\になります)。

In[11]: sys.path
Out[11]: 
['C:\\Users\\maech',
 'C:\\script', ...  <-- 追加されている
自分のpyファイルをimportする

これで、C:\script\*.pyのすべてのpyファイルがimportできます。

# C:\script\mypy.pyをインポート
import mypy
# mypy.pyに定義したfunc()を使う
a = mypy.func()
# mypy.pyに定義したクラスmypyのfunc()を使う
a = mypy.mypy.func()
# この場合は from mypy import mypy とすると a = mypy.func() で呼び出せる

# C:\script\mypy2.pyをインポート
import mypy2

# C:\script\sub_script\subpy.pyをインポート
import sub_script.subpy

Linuxでやりたい人

bashを使っているのなら、~/.bashrcを開き、次の文を追加してください。ここでは/home/user/add内にimportしたいpyファイルがあるとします。複数パスがある場合は:でつないでください。

export PYTHONPATH="/home/user/add:$PYTHONPATH"

その後、ターミナルとSpyderを再起動すれば反映されます。

ターミナルの起動時に.bashrcを読み込むのでターミナルを新たに起動する必要があります。

参考

38
30
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
38
30