在 MAC OS X 上,py.test 未被识别为命令。

3

我在MAC OS X 10.10上安装了pytest 2.6.4,但是在终端中输入py.test或者py.test --version时,会出现错误:

-bash: py.test command not found

(a) 我有遗漏吗?我该如何使 pytest 工具可被识别。我搜索了很多,但除了 http://teckla.idyll.org/~t/transfer/py.test.html 之外没有找到任何信息。

我在 PyCharm 的偏好设置中查看,未发现列表中有 py.test 解释器。不过,pip freeze 显示已安装 pytest 2.6.4。

(b) 在 MAC 上是否需要设置 PYTHONPATH?虽然我已经看到 Windows 不需要设置。

感谢任何能帮助我解决问题的指引。


更新:我的 bash_profile 内容:

echo export PATH="HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH"
PATH="/Users/admin/Library/Python/2.7/lib/python/site-packages:$PATH"
PATH="/System/Library/Frameworks/Python.framework/Versions/2.7/bin:$PATH"
export PATH

1
你是怎么安装的?安装完后,你有重新加载你的shell补全吗?你知道它安装在哪里吗?如果知道,那个目录是否在你的PATH环境变量中? - undefined
在Windows中,我们通过将PATH变量附加为"C:\Python27;C:\Python27\Scripts"来使Python测试运行;那么在MAC上的等效操作是什么? - undefined
假设您没有更改您的shell,您需要在~/.profile中添加类似于export PATH=$PATH:/path/dir/with/py.test的内容将其添加到您的路径中(在*nix系统中,路径分隔符是:)。您是如何安装pip的?(使用homebrew吗?)它位于/usr/local/bin目录下吗?您可以尝试找到py.test的位置(在终端中输入find / -name py.test -print,这应该会显示它的位置),但也请像@I'L'I所说的那样检查确保它具有可执行权限。 - undefined
是的,.profile 是最后读取的,所以即使 .bash_profile 不存在,它仍然可以工作,但它也应该适用于所有的 sh 版本。我不使用 bash,对于错误的位置表示抱歉。 - undefined
@Doon, @l'L'l,请指导。 - undefined
显示剩余3条评论
5个回答

5

1
我实际上已经做过这个了。但是如果我运行 py.test --version,会出现错误 "-bash: py.test 命令未找到"。 - undefined
你退出了终端并重新启动了吗?你可能还需要执行 sudo chmod +x /usr/local/bin/py.test - undefined
是的,我确实退出了终端并重新启动了,甚至执行了chmod +x <py.test目录>;但是没有起作用。请查看我的原始帖子,我刚刚添加了我的bash_profile的内容。 - undefined

2

终于解决了! 在下载 pytest 后,我执行了以下命令,结果就像魔法一样奏效了。 我想,之前可能是因为我忘记在安装命令前面加上 "sudo":

$python setup.py build
$sudo python setup.py install

输出结果如下:
..
Installing py.test script to /usr/local/bin
Installing py.test-2.7 script to /usr/local/bin
Installed /Library/Python/2.7/site-packages/pytest-2.6.4-py2.7.egg
..
Using /Users/admin/Library/Python/2.7/lib/python/site-packages
Finished processing dependencies for pytest==2.6.4

这是我的 .bash_profile 文件,jfyr:

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/System/Library/Frameworks/Python.framework/Versions/2.7/bin"
export PATH

我猜测当您以用户身份运行时,它将其安装到了您的主目录中的一个目录中,而该目录不在您的路径中。 - undefined
你说得对。我觉得当我第一次使用--user属性安装pytest时。 code"python setup.py install --user"code - undefined

2

对于我们尽力避免使用sudo的人:

  1. 从这里下载并解压。
  2. $ cd <pytest下载文件夹>
  3. $ python setup.py build
  4. $ python setup.py install --user
  5. 无论安装输出在何处指出“py.test脚本”已安装,都将其添加到PATH中的.bash_profile中(如果您用它来设置环境变量,则添加到.bashrc中)。
  6. 通过$ py.test --version确认安装是否成功

2
我在Mac M1上安装pytest的时候遇到了问题,但是我按照Python pip文档操作后解决了。我的操作如下:
  • 在Pycharm终端中通过命令安装pip(我使用的是pycharm):python3 -m pip install pytest

  • 安装完成后,我通过命令在终端中运行pytest:python3 -m pytest "name_of_the_file.py"

这样就可以正常工作了。在Mac上,我需要在所有命令前加上"python3"前缀,因为我猜测Mac已经自带了Python 2,而我在Pycharm上使用的是Python 3,所以需要在命令中加上这个前缀...虽然我是新手,但大概就是这个意思。

2

pip3 install -U pytest适用于Python 3.7版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接