wiki:PackagingPolicy/Python

Version 1 (modified by owa, 9 years ago) (diff)

--

Python 関連パッケージポリシー

Python 関連のパッケージングポリシーを定めます。
(ただし後付けなので現状を無理に変えることを提案してるわけではありません -- owa)

Python 本体の配置

Python 本体は %{_libdir}/python2.6 の下にすべて配置されます。
組込モジュルーはマクロ定義されている %python_sitelib に配置されますが、
arch に依存するモジュールは %python_sitearch に配置されます。

Python ライブラリパッケージの配置

原則として RPM パッケージでいれる Python ライブラリは %python_sitelib に配置し、 arch に依存するライブラリは %python_sitearch に配置するものとします。
現在は自動で振り分けてくれるものが多いと思いますが、 古いパッケージではそうで無いものもあると思います。 迷った時は上の指針で配置してください。

Python プログラムパッケージの配置

原則として RPM パッケージ独自のディレクトリに配置すること。
他の Python ライブラリを使用する場合は Python ライブラリへのパス指定などを使用 することが望ましい。
(他から利用されないライブラリを site-packages の下に入れないで欲しい -- owa)

各種マクロ

%__python /usr/bin/python
%pyver %(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])")
%python_sitelib %(%{__python} -c 'from distutils.sysconfig import sys; sys.stdout.write(get_python_lib(0))')
  • /usr/lib/python2.6/site-packages
%python_sitearch %(%{__python} -c 'from distutils.sysconfig import sys; sys.stdout.write(get_python_lib(1))')
  • /usr/lib/python2.6/site-packages (i686, ppc 環境の場合)
  • /usr/lib64/python2.6/site-packages (x86_64 環境 の場合)

site-packages 配下の利用方法

  • site-packages ディレクトリ {%python_sitelib または %python_sitearch} にモジュール *.py や、 ライブラリ *.so を置くことは Python の名前空間を汚すことになるので注意しましょう。 もしまとめられるなら、一つの名前を付けそのディレクトリ内に収める方が望ましいとは思います。