web-dev-qa-db-ja.com

virtualenvでpytestを使用するにはどうすればよいですか?

pytestvirtualenvにインストールし、その仮想環境から実行していますが、その仮想環境にインストールしたパッケージを使用していません。代わりに、メインシステムパッケージを使用しています。 (python -m unittest discoverを使用すると、正しいpythonとパッケージでテストを実際に実行できますが、py.testフレームワークを使用したいです。)

Py.testが実際にvirtualenv内でpytestを実行していない可能性があり、実行するpytestを指定する必要がありますか?

Py.testで、virtualenvにあるpythonとパッケージのみを使用するにはどうすればよいですか?

また、システム上にいくつかのpythonがあるので、どのpython pytestが使用しているのかをどのように確認できますか? virtualenv内でpythonを自動的に使用しますか、それとも何らかの方法で指定する必要がありますか?

25
Henry Grantham

あなたの環境の中では、試すことができます

python -m pytest
27
Icarus

これを機能させるにはちょっとしたダンスがあります:

  1. venvをアクティブにします:source venv/bin/activate
  2. pytestのインストール:pip install pytest
  3. venvを再アクティブ化します:deactivate && source venv/bin/activate

理由は、pytestが実際にsourceにインストールされた後でのみ、activateへのパスがpytestingによってvenvファイルによって設定されるためです。インストールする前にパスを設定することはできません。

Re -activateingは、仮想環境内にインストールされたコンソールエントリポイントに必要です。

12
7yl4r

私の場合、venvを離れる(非アクティブ化)、pytestを削除する(pip uninstall pytest)、venvを入力する(source/my/path/to/venv)、次にpytestを再インストールする(pip install pytest)必要がありました。 penvがpytestをvenvにインストールすることを拒否する理由を正確には知りません(既に存在すると言います)。

これが役立つことを願っています

3
jmcollin92

python envをアクティブにする必要がありますpythonスクリプトを実行するたびに、それをアクティブにする方法がいくつかあります。virtualenvがインストールされていると仮定します/ home/venvの下:

1-ベースの方法は、pythonを1つのコマンドライン>>> /home/venv/bin/python <your python file.py>

2- pythonスクリプトファイル#! /home/venv/bin/pythonを実行してからpython <you python file.py>

3- python env source /home/venv/bin/activateそして、python <you python file.py>

4- virtualenvwrapper を使用して、python環境を管理およびアクティブ化する

0