2009-04-20 13 views
7
私は別に2を利用できるようにしたいので、ユーザが行うことができます

1つのsetup.pyからの複数のプロジェクト?

(setuptoolsのを使用して)1はtvdb_api(APIラッパー)である、二つのことをインストールし、他はtvnamer(コマンドラインスクリプト)であるsetup.py

私の現在..

easy_install tvdb_api 

のみ..to(要件などとtvdb_api、)tvnamerをインストール..to APIのラッパー、または...

easy_install tvnamer 

を取得

これは2つの別個のスクリプトを持たなくても可能ですか?setup.py同じpython setup.py uploadコマンドから来た2つの別々のPyPiパッケージがありますか?

+2

2つのsetup.pyスクリプトで何が問題になっていますか? –

+0

ええ、それはそれを行う方法のようです – dbr

答えて

9

setup.pyは、規則的なPythonファイルであり、これは慣例によりパッケージを設定します。慣例として、setup.pyには、setuptoolsまたはdistutils setup()関数の呼び出しが含まれています。あなたは二つのパッケージのための1 setup.pyを使用する場合は、コマンドライン引数に基づいて異なるsetup()関数を呼び出すことができます。

import sys 
if len(sys.argv) > 1 and sys.argv[1] == 'script': 
    setup(name='tvnamer', ...) 
else: 
    setup(name='tvdb_api', ...) 

実際に、しかし、私はちょうど2つのスクリプトを書いてお勧めします。

+0

'sys.args'は存在しません、あなたは' sys.argv'を意味しましたか? – ncocacola

+0

@ncocacola:そうです、それは彼が肉を持っている必要があります。私はタイプミスを修正しました。 –

+0

私はこれが最初の引数を 'pop'することなく動作しないと思う。それ以外の場合、IMO setup()はsetupコマンドラインインターフェイスのパラメータの1つとして扱います。 – NirIzr

関連する問題