33

私のアプリケーションをインストール可能にするための十字軍でpip、私はととの大きな戦いをしsetuptoolsdistributeいます。私の依存関係は正しいと思います。つまり、withをインストールすると、pip install myappおそらく仮想環境が正しく満たされるはずです。ただし、開発を合理化したいので、空から始めて、定義されたすべての依存関係で埋めることを目標としていvirtualenvますsetup.py test(後でsetup.py develop、まったく別の戦いになります)。

そして今、私の問題になります。どんなに頑張っても.egg、プロジェクトディレクトリにsとしてインストールされている依存関係だけが、少なくとも最適ではありません。私は使用する新しいsetuptoolsコマンドを作成しようとしましたがpip(これは厄介ですが機能しているようです)、それは真剣に解決策にはなりません(サブクラス化してオーバーライドします)。

では、作業ディレクトリsetup.py testの代わりに塗りつぶしを作成するにはどうすればよいですか?virtualevn

4

2 に答える 2

13

tests_requires設計上、またはsetup_requiresエントリを仮想環境に入れることはできません。アイデアは、テスト/セットアップを実行するために必要なものと、インストールされているパッケージを実際に使用するために必要なものを分離することです。たとえば、パッケージでテストを実行するために「カバレッジ」モジュールが必要な場合がありますが、パッケージ内のどのコードでも使用されていません。したがって、テストを実行するときに環境に「カバレッジ」がなかった場合、パッケージで必要がなければ「カバレッジ」を環境にインストールしたくありません。

于 2014-01-08T18:06:10.100 に答える
-6

を使用している場合は、メソッドのキーワード引数をsetuptools使用してテストの依存関係を指定できます。tests_requiresetup

from setuptools import setup

setup(
    name='your-package-name',
    version='1.0.0',
    author='me',
    author_email='me@mybasement.com',
    install_requires=['Pygments>=1.4'],
    tests_require=['nose'],
    packages=[
        'your_package_name',
    ],
)

を実行すると、これは、まだ利用できない場合は、現在アクティブなを使用してチェックしてインストールしpython setup.py testます。nosevirtualenvpip

を使用している場合、この引数は無視されることに注意してくださいdistribute.core.setuptestコマンドも使用できません)。

于 2012-05-11T15:05:08.370 に答える