【问题标题】:Installed Nose but cannot use on command line安装了鼻子但不能在命令行上使用
【发布时间】:2015-12-09 08:36:11
【问题描述】:

我使用easy_install 在带有 Python2.7.9 的 Mac OSX 10.10.5 上安装了 Nose。安装似乎成功:

Collecting nose
  Downloading nose-1.3.7-py2-none-any.whl (154kB)
    100% |████████████████████████████████| 155kB 2.3MB/s 
Installing collected packages: nose
Successfully installed nose-1.3.7

但是现在,当我在命令行上尝试使用nosetests 进行基本操作时,例如nosetests -hwhich nosetests,我会得到:

bash: nosetests: command not found

我已经尝试卸载,使用pip 重新安装,尝试使用sudo 安装,然后按照其他帖子的建议在带有测试脚本的目录中运行sudo nostests,但似乎没有任何效果。

安装的最初目的是使用我为这些简单的 web.py 应用程序编写的测试脚本运行一些基本测试。但没有任何效果,只需不断收到command not found 回复即可。

奇怪的是,当我在终端中打开 Python 解释器并执行以下操作时:

import nose 
nose.main()

我得到了预期的结果:

.
----------------------------------------------------------------------
Ran 1 test in 0.135s

OK

很明显它已经安装了....某处。关于这里到底发生了什么的任何建议?

【问题讨论】:

  • 试试nosetests-2.7
  • @RolandSmith 刚刚尝试过nosetests-2.7 -h 仍然得到:zsh: command not found: nosetests-2.7
  • 我认为nosetests 命令应该在/usr/local/bin 中。 zsh 中的 $PATH 的那一部分?

标签: python macos python-2.7 nose


【解决方案1】:

如果您在虚拟环境中运行鼻子,并且该虚拟环境已被停用,也会发生这种情况。如果是这种情况,请使用 source bin/activate 重新激活。

【讨论】:

    【解决方案2】:

    我尝试重新安装 pip,它不起作用,但最后,当我使用 sudo 时...它起作用了

    pip3 卸载鼻子

    sudo pip3 安装鼻子

    哪些鼻子测试

    /usr/local/bin/nosetests

    【讨论】:

      【解决方案3】:

      据我了解,每个人都在转向pytest - 一个积极维护的测试框架。

      这不是解决这个问题的方法,但如果您仍在使用nose,它可能是最合适的选择。

      【讨论】:

        【解决方案4】:

        我在使用 Python 2.7.10 的 OS X EI Captain 上遇到了这个确切的问题。

        首先我使用 pip 安装了 nose

        $sudo pip install nose 
        

        第一次尝试失败。第二次尝试通过。但是nosetests 命令不起作用。

        为了解决这个问题:

        第 1 步:如果 nose 已经像我的情况一样使用 pip 安装,请不要卸载它。

        第二步:

        $cd /usr/bin
        
        $sudo easy_install nose 
        

        上面的命令找到了nosetests脚本(之前是由pip安装的)并将它设置在/usr/local/bin

        Step 3: Try nosetests
        
        $nosetests
        
        ----------------------------------------------------------------------
        Ran 0 tests in 0.047s
        
        OK
        

        【讨论】:

          【解决方案5】:

          在 Mac OS 上使用pip 安装包时出现很多错误。所以我建议你使用easy_install 安装nose

          $ pip uninstall nose

          $ sudo easy_install nose

          那你现在可以试试nosetests :)

          【讨论】:

            【解决方案6】:

            我发现去

            Library/usr/bin 
            

            并运行

            sudo easy_install nose
            

            似乎有时它不会自动安装鼻子(因此鼻子测试功能)。做以上几行,你应该没问题。

            我希望我能更好地解释为什么会发生这种情况,但我自己还是个新手。

            【讨论】:

              【解决方案7】:

              在 OS X 等类 UNIX 系统上,脚本应该位于 /usr/local/bin 中。确保该目录位于您使用的 shell 中的 PATH 环境变量中。

              如果没有,也可以使用find定位,例如:

              find / -type f -name 'nosetests*' -perm +111 -print -quit
              

              这意味着;搜索名称以nosetests 开头的文件,该文件已设置执行权限。打印路径名并停止。

              【讨论】:

              • 感谢该命令,它似乎已经返回:/Library/Frameworks/Python.framework/Versions/2.7/bin/nosetests 知道了,我应该如何调整使用 Nosetests 命令的方法?
              • /Library/Frameworks/Python.framework/Versions/2.7/bin/ 添加到您的PATH。如何/在哪里执行此操作取决于您使用的外壳。
              • 感谢您的帮助!有没有一种解决方法,当我在项目目录中时,我不必使用这个长文件路径来使用 Nosetests?当我在目录中时将 PYTHONPATH= 设置为某些东西会起作用吗?
              • 当你从 shell 调用 nosetests 时,它与 PYTHONPATH 无关。但是我知道的所有 shell 都使用一个名为PATH 的环境变量,其中包含一个用冒号分隔的目录列表。 Shell 在这些目录中查找可执行文件。这些目录之一中的任何可执行文件都可以通过按其名称调用它来启动。设置此环境变量的位置因外壳而异。查看您的 shell 手册页中的 FILES 部分。
              【解决方案8】:

              首先,你可以从命令行运行“python”吗?鼻子测试应该在同一个目录中:

              rich bin $ which python
              /home/rich/anaconda/bin/python
              rich bin $ which nosetests
              /home/rich/anaconda/bin/nosetests
              

              下载的nose包里也应该有:

              rich bin $ find /home/rich/anaconda -name nosetests
              /home/rich/anaconda/pkgs/nose-1.3.3-py27_0/bin/nosetests
              /home/rich/anaconda/pkgs/nose-1.3.7-py27_0/bin/nosetests
              /home/rich/anaconda/bin/nosetests
              

              【讨论】:

              • 是的,我绝对可以从命令行运行 python。当我运行 which python 时,我得到:/usr/local/bin/python 但正如我在帖子中提到的,我无法运行 which nosetests
              猜你喜欢
              • 2013-09-18
              • 1970-01-01
              • 2013-10-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多