pytest想给我们错误的python 3版本

时间:2016-04-28 10:27:47

标签: python macos python-3.x pytest python-venv

pytest因某种原因正在寻找python3.4。

$pytest
-bash: /usr/local/bin/pytest: /usr/local/opt/python3/bin/python3.4: bad interpreter: No such file or directory

我正在使用OS X,我之前安装了python3.4,但现在已经使用python3.5了一段时间。 修改:我可能无法正确升级,这可能会导致此问题。

我使用brew安装了3.4和3.5。

$brew list python3
/usr/local/Cellar/python3/3.5.1/bin/2to3-3.5
...etc.
/usr/local/Cellar/python3/3.5.1/bin/python3.5
...etc.

我正在使用python3.5和pip3的虚拟环境。我有以下几套:

$echo $VIRTUALENVWRAPPER_PYTHON
/usr/local/bin/python3.5
$ echo $VIRTUALENVWRAPPER_VIRTUALENV
/usr/local/bin/virtualenv-3.5

Python3和pip正常工作:

$ which python
<blah>/.virtualenvs/<blah>/bin/python
$ python
Python 3.5.1 (default, Dec 26 2015, 18:08:53)
$ pip -V
pip 8.1.1 from /<blah>/.virtualenvs/<blah>/lib/python3.5/site-packages (python 3.5)

我在安装pytest时尝试使用pip --isolated标志:

$ pip install -h
...
--isolated    Run pip in an isolated mode, ignoring environment variables and user configuration.

是这样的:

$ pip install --isolated pytest
Collecting pytest
  Using cached pytest-2.9.1-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): py>=1.4.29 in /<blah>/.virtualenvs/<blah>/lib/python3.5/site-packages (from pytest)
Installing collected packages: pytest
Successfully installed pytest-2.9.1

但是pytest仍然在寻找python3.4。

python3.4必须要有一些东西,不幸的是pytest安装正在接受。

有人可以对此有所了解吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

咳咳。

要运行pytest,请使用:

$py.test

而不是

$pytest

pytest可执行文件/usr/local/bin/pytest已超过一年,我假设旧安装。

ls -plah /usr/local/bin/pytest
-rwxr-xr-x  1 root  admin   154B 15 Apr  2015 /usr/local/bin/pytest

我删除它并卸载并重新安装pytest与pip。重新安装不会重新创建/usr/local/bin/pytest。事后看来,如果pip确实将任何内容置于活动的.virtualenv目录之外,我会感到惊讶。

总结: