質問

私はvirtualenvのプロジェクトに鼻(nosetests)を使用することができません - virtualenvの環境にインストールパッケージを見つけるように見えることはできません。

奇妙なことは、私が設定することができるということです。

test_suite = 'nose.collector'

setup.py中と

としてちゃんとテストを実行
python setup.py test

が、ストレートnosetestsを実行するときに、インポートエラーのすべての種類があります。

私は鼻のシステム全体のインストールとvirtualenvの鼻パッケージと運の両方でそれを試してみた。

任意の考え?

感謝!!

役に立ちましたか?

解決

あなたはmyenv/bin/python /usr/bin/nosetestsを実行することができますか?これは、仮想環境のライブラリのセットを使用して鼻を実行する必要があります。

他のヒント

あなたは、仮想環境にインストールされ、鼻のコピーを持っている必要があります。 pip installフラグで-Iを実行し、それはすでにグローバルサイトパッケージでインストールされていても、virtualenvのに鼻のインストールを強制するためにます:

(env1)$ pip install nose -I

その時からあなたにいつものようnosetestsを実行することができます。

パスが正しく更新されるために、

は、同じような状況で、私はvirtualenvをリロードするために必要なます:

deactivate
env/bin/activate

私は同様の問題を得ました。次の回避策は助けます:

python `which nosetests` 

(だけでなくnosestestsの)

ここでは私のためにどのような作品です。

$ virtualenv --no-site-packages env1
$ cd env1
$ source bin/activate            # makes "env1" environment active,
                                 # you will notice that the command prompt
                                 # now has the environment name in it.

(env1)$ easy_install nose        # install nose package into "env1"

私は、あなたが上記のように、そのslitherで、同じsetup.py属性を持っていた、本当に基本的なパッケージtest_suiteを作成しました。それから私はenv1/srcの下でパッケージソースを置いています。

あなたが内部env1/srcを見た場合、あなたが参照してくださいね。

slither/setup.py
slither/slither/__init__.py
slither/slither/impl.py          # has some very silly code to be tested
slither/slither/tests.py         # has test-cases 

私はtestサブコマンドを使用してテストを実行することができます:

(env1)$ pushd src/slither
(env1)$ python setup.py test
# ... output elided ...
test_ctor (slither.tests.SnakeTests) ... ok
test_division_by_zero (slither.tests.SnakeTests) ... ok
Ran 2 tests in 0.009s
OK
(env1)$ popd

それとも、私がnosetestsと同じテストを実行することができます:

(env1)$ pushd src
(env1)$ nosetests slither/
..
Ran 2 tests in 0.007s
OK
(env1)$ popd

は、またnosetestsは、実行可能好き嫌いできることに注意してください。あなたはそれが実行可能なPythonモジュールでのテストを発見したい場合は、--exeを渡すことができます。

他のすべてが失敗した場合は、お使いのvenvで鼻をインストールしてみてください、および/またはnosetests-2.7を実行します。私はあなたのvenvパイソンが2.7である場合、@のアンドレア・zoncaの答えは同じ効果があると考えています。

おそらくこれは、最近の変化ですが、私はピップを通じてnosetestsをインストールしたときに私のために、(当然)virtualenvので正しく動作します。

.virtualenvs/<env>/binにインストール実行可能nosetestsがあったが、

あなたはvirtualenvの中に設置さよりも高い優先順位であなたのnosetestsにどこかにインストールされているPATHを持っているかもしれません。あなたの現在のvirtualenvの最優先に設置されnoseモジュールおよび関連nosetestsスクリプトを与えるために簡単な方法は、あなたのPATHを編集することです。

export PATH=/path/to/current/virtualenv/bin:$PATH
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top