2011-03-18 10 views
2

私はカスタムインストールレイアウトでPythonモジュールをインストールしようとします。 install-baseが無視され、モジュールが./modulesにインストールされているようだが - 私は./setup.pyをインストールするための--install-baseパラメータは何を意味しますか?

python ./setup.py install -f --install-base="/home/hstock/tmp/python" \ 
         --install-purelib=modules \ 
         --install-scripts=bin \ 
         --install-data=data \ 
         --install-platlib=modules \ 
         --install-headers=include 

を行うことができ、これは/home/hstock/tmp/python/modulesにモジュールをインストールする必要があることを集まったドキュメントから

これはバグですか?またはドキュメントが間違っていますか?

(これはUbuntuの明晰でのpython 2.6.5です)

更新:

私がインストールしたいモジュールが自作で、setup.pyは非常に簡単です:

#!/usr/bin/env python 

from distutils.core import setup 

setup(
    name='ilogtoolbox', 
    provides=['ilogtoolbox'], 
    version='0.6.3.1', 
    packages=['ilogtoolbox'], 
    requires=['daemon'], 
    scripts=['prunedirs', 'logstoexternal'] 
    ) 
+0

はあなたを持っています問題は解決しましたか?もしそうなら、あなたはこの質問にあなた自身の答えを投稿することができますか? – theheadofabroom

+0

これに関するすべてのニュース? FWIW、私はPython 2.7.3でUbuntu 12.04(amd64)と同じ問題を抱えています。 –

答えて

0

あなたはこれを正しく使ったように見えますが、モジュールは何ですか?モジュール作成者がdistutilsを正しく利用していない可能性はありますか?

+0

私は自分自身でモジュールを書きました。私は上記のsetup.pyを投稿しました。私はこれがdistutilsを使用する通常の方法だと思います。 –

+0

@Hanno distutils.cfgファイルの内容を含めることはできますか?絶対パスで指定されているものはありますか?私はGOTCHAを見つけようとしているので、一般的には正しいものに見えます。 – theheadofabroom

+0

あなたの使い方は、ドキュメントが言うことにちょうど一致します!プロジェクト全体をどこかに公開できますか? –

1

実際、これらの--install- *引数はすべて単純な文字列テンプレートを受け入れます。 Pythonのstdlib distutils.command.install codeを見てください。デフォルトは '$ base/Lib'や '$ base/Scripts'のようになります。

だからあなたのユースケースのためには、次のようになります。

python ./setup.py install -f --install-base="/home/hstock/tmp/python" \ 
         --install-purelib='$base/modules' \ 
         --install-scripts='$base/bin' \ 
         --install-data='$base/data' \ 
         --install-platlib='$base/modules' \ 
         --install-headers='$base/include' 

そして--install-libには、実際に両方purelibを設定するので、それは少し短くすることができplatlib:

python ./setup.py install -f --install-base="/home/hstock/tmp/python" \ 
         --install-lib='$base/modules' \ 
         --install-scripts='$base/bin' \ 
         --install-data='$base/data' \ 
         --install-headers='$base/include' 
関連する問題