pytest
をvirtualenv
にインストールし、その仮想環境から実行していますが、その仮想環境にインストールしたパッケージを使用していません。代わりに、メインシステムパッケージを使用しています。 (python -m unittest discover
を使用すると、正しいpythonとパッケージでテストを実際に実行できますが、py.testフレームワークを使用したいです。)
Py.testが実際にvirtualenv内でpytestを実行していない可能性があり、実行するpytestを指定する必要がありますか?
Py.testで、virtualenvにあるpythonとパッケージのみを使用するにはどうすればよいですか?
また、システム上にいくつかのpythonがあるので、どのpython pytestが使用しているのかをどのように確認できますか? virtualenv内でpythonを自動的に使用しますか、それとも何らかの方法で指定する必要がありますか?
あなたの環境の中では、試すことができます
python -m pytest
これを機能させるにはちょっとしたダンスがあります:
source venv/bin/activate
pip install pytest
deactivate && source venv/bin/activate
理由は、pytest
が実際にsource
にインストールされた後でのみ、activate
へのパスがpytest
ingによってvenv
ファイルによって設定されるためです。インストールする前にパスを設定することはできません。
Re -activate
ingは、仮想環境内にインストールされたコンソールエントリポイントに必要です。
私の場合、venvを離れる(非アクティブ化)、pytestを削除する(pip uninstall pytest)、venvを入力する(source/my/path/to/venv)、次にpytestを再インストールする(pip install pytest)必要がありました。 penvがpytestをvenvにインストールすることを拒否する理由を正確には知りません(既に存在すると言います)。
これが役立つことを願っています
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環境を管理およびアクティブ化する