1

setuptools を使用して配布可能な卵を作成しようとしていますが、私のプログラムは wget の存在に依存していますが、これは明らかに PyPi では利用できません。wget の存在をチェックし、ユーザーにインストールを依頼し、インストールされていない場合は -1 を返し、インストールされている場合は 0 を返す小さなスクリプトがあります。

wget チェック スクリプトが 0 を返す場合にのみプログラムのインストールを完了したいのですが、setuptools を使用してこれを行うにはどうすればよいですか?

4

2 に答える 2

1

setup.py でメソッドを呼び出す前にsetup()、wget が存在するかどうかを確認できます。存在しない場合は、ソフトウェアの依存関係として wget が必要であるというメモを残して終了できます。

if __name__ == '__main__':

    # Check for wget
    if sys.platform == 'linux2' and not ((os.path.exists('/usr/bin/wget') or os.path.exists('/usr/local/bin/wget')):
        sys.exit("You need wget binary for this software to work")

    # setup code
    setup(name='yoursoftware',
          version='42',
          data_files = [  # All your setup details
                        (script_install_location, ['somescript.py']),

          )

他のポスターが説明したように、wget を使用せずに何をしようとしても達成でき、urlretrieve メソッド urllib を介して取得できれば、クロスプラットフォーム ソリューションになります。

于 2011-01-16T03:38:10.770 に答える
0

wget の必要性に応じて、urllib または urllib2 モジュールを使用して、Python で独自の wget に相当するものを作成することを検討しましたか? そうすれば、クロスプラットフォームで自分の管理下にあるものを手に入れることができ、wget への依存を断ち切ることができます。urlretrieve メソッドを見てください。

于 2011-01-16T03:21:53.773 に答える