読者です 読者をやめる 読者になる 読者になる

uokadaの見逃し三振は嫌いです

ここで述べられていることは私の個人的な意見に基づくものであり、私が所属する組織には一切の関係はありません。

CentOS7のpythonpathを調べる

rpmファイル作ってる時にnoarchのパッケージってどの順番で読み込まれるんだっけとなって調べてみた。

とりあえず、python2.7コマンドを立ち上げる。

% /usr/bin/python2.7
Python 2.7.5 (default, Jun 24 2015, 00:41:19)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages']
>>> print '\n'.join(sys.path)

/usr/lib64/python27.zip
/usr/lib64/python2.7
/usr/lib64/python2.7/plat-linux2
/usr/lib64/python2.7/lib-tk
/usr/lib64/python2.7/lib-old
/usr/lib64/python2.7/lib-dynload
/usr/lib64/python2.7/site-packages
/usr/lib/python2.7/site-packages

この結果をみると最初にカレントディレクトリのモジュールを読み込んでそこから順番に /usr/lib64 以下のモジュールを順番に読み込んでいって最後に /usr/lib/python2.7/site-packages を読み込んでいるようだ。

noarchのrpmパッケージは /usr/lib/python2.7/site-packages 以下にインストールされるのでここに置いておけばpythonpathのデフォルト設定で読み込まれる。

link