【问题标题】:Installing nose using pip, but bash doesn't recognize command on mac使用 pip 安装鼻子,但 bash 无法识别 mac 上的命令
【发布时间】:2013-09-18 18:30:47
【问题描述】:

我正在尝试在我的计算机上安装鼻子以学习 Python the Hard Way 教程,但似乎无法使其正常工作。我正在使用 pip 安装:

$ pip install nose

我回来了:

Requirement already satisfied (use --upgrade to upgrade): nose in /usr/local/lib/python2.7/site-packages
Cleaning up...

但是,当我运行命令 nosetests 时,我得到:

-bash: nosetests: command not found

我认为我的 PATH 有问题,但老实说我不知道​​。任何帮助将不胜感激!

【问题讨论】:

  • 你在 virtualenv 中吗?
  • 我尝试使用 virtualenv ENV 设置虚拟环境,但我的 bash 说也找不到该命令(与我尝试使用 nosetests 时类似的响应)
  • 你试过卸载/重新安装nose吗?
  • 遇到了同样的问题。卸载/重新安装鼻子固定它。我现在可以在终端中输入nosetests,它就会流鼻涕。

标签: python python-2.7 nose python-module nosetests


【解决方案1】:

很抱歉复活了一个旧线程,但我只想指出,没有人提到激活虚拟环境。人们在问“你在虚拟环境中吗?”但user2778157 似乎对这到底意味着什么感到困惑。我想澄清这一点,并认为这实际上可能是问题的根源。 (对不起,来源的双关语)。

当您使用pip install 时,您不会安装到主机系统,而是安装到虚拟环境中。当你创建一个虚拟环境时,它会有一个文件夹bin,里面有一个文件activate。为了激活虚拟环境,你需要做source PATH/TO/ACTIVATE。当你的虚拟环境被激活时,你的系统会在检查主机之前检查你的程序的虚拟环境,这就是你的 pip 包应该在的地方。

您不使用sudo pip install 的原因是因为这会让超级用户(没有激活环境的人)安装软件包,该软件包将转到您的主机。

【讨论】:

    【解决方案2】:

    需要为“nosetests”设置 PATH 变量。请在您的终端上使用这个:

    alias nosetests='/Library/Frameworks/Python.framework/Versions/2.7/bin/nosetests'

    祝你好运!

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,但这解决了它。

      1. 安装:nose2
      2. 然后使用:nose2 代替 nosetests 来测试程序

      祝你好运...!

      【讨论】:

        【解决方案4】:

        您可以使用apt-get -y install python-nose 重新安装。

        【讨论】:

          【解决方案5】:

          我使用的是 OS X 10.11.1。

          在终端中执行以下操作:

          1. 移动到目录~/Python/2.7/site-packages/

          2. 输入sudo easy_install pip

          3. 输入sudo easy_install virtualenv

          4. 输入sudo easy_install nose

          5. 输入sudo easy_install distribute

          6. 按照Learn Python The Hard Way 书中的说明进行操作。

          【讨论】:

            【解决方案6】:

            我知道这是一个旧线程,但以防其他人需要它:

            我使用的是 OS X 10.9.3。按照书中的说明将所有软件包“cd”安装到项目目录后。然后输入

            sudo nosetests
            

            然后你会看到'learnpythonthehardway'作者在书中和网上展示了什么。

            【讨论】:

            • sudo = 不好。使用 virtualenv。
            【解决方案7】:

            在 OSX 上,使用 pip 将 nose 1.3 安装到 /usr/local/share/python/nosetests 默认不在 $PATH 中。

            【讨论】:

              【解决方案8】:

              在我用sudo 设置鼻子之前我遇到了这个问题:

              sudo pip install nose
              

              【讨论】:

              • 不要使用 sudo,使用 virtualenv。
              • 对于那些使用 pip3 的人:sudo pip3 install nose
              【解决方案9】:

              但是,当我运行命令 nosetests 时,

              当然,您如何运行该命令以及从哪个目录运行可能很重要。

              我认为我的 PATH 有问题,但老实说我不知道​​。

              如果你这样做:

              $ echo $PATH
              

              ...您将能够看到路径中的所有目录。当然,您可以将所需的任何目录添加到 PATH 中。

              不过,我最近在我的mac上安装了nose,我是手动安装的:

              .../Downloads$ tar xfvz nose-1.3.0
              .../Downlaods$ cd nose-1.3.0
              .../nose-1.3.0$ sudo python setup.py install
              

              ...这里安装了鼻子测试:

              $ which nosetests
              /Library/Frameworks/Python.framework/Versions/2.7/bin/nosetests
              

              在我的站点包目录中也有一个鼻子目录,和往常一样。所以在我的 Mac 上,nosetests 安装在 site-packages 目录之外的目录中。可能只有较新版本的 nose 安装了 nosetests 命令。您可能想尝试:

              $ pip install --upgrade nose
              

              【讨论】:

              • 我尝试升级鼻子,它说我的鼻子已经是最新的。当我输入 $echo $PATH 我得到: /Users/zubinteherani/.rvm/gems/ruby-1.9.3-p392/bin:/Users/zubinteherani/.rvm/gems/ruby-1.9.3-p392@global/ bin:/Users/zubinteherani/.rvm/rubies/ruby-1.9.3-p392/bin:/Users/zubinteherani/.rvm/bin:/opt/local/bin:/opt/local/sbin:/Applications/Postgres .app/Contents/MacOS/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/lib/python2.7/site-packages:/usr/local/bin:/usr/local /sbin:/usr/bin:/bin:/usr/sbin:/sbin
              • 我会尝试卸载:pip uninstall nose,然后手动重新安装,如上所示。在此处下载nose-1.3.0.tar.gz:pypi.python.org/pypi/nose/1.3.0下载后安装前,请执行以下操作:~/Downloads$ md5 nose-1.3.0.tar.gz然后点击下载页面下方的md5链接,将md5复制并粘贴到终端(在显示的 md5 下方的行)。添加足够的空格使md5的对齐,然后比较。如果它们相同,请安装模块。
              • 一个选项当然是将 /Library... 添加到您的路径中,它的缺点取决于 Python 版本 (...Versions/x.y/bin)
              【解决方案10】:

              退出 7stud,您可以执行 sudo find / -name nosetests,然后将其附加到您的 PATH

              (我确信在 / 之外执行 find 有点矫枉过正,但我​​喜欢它遍及整个操作系统)

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2021-06-24
                • 2015-12-09
                • 2017-09-29
                • 2014-07-26
                • 2016-01-01
                • 2012-10-04
                • 2017-09-30
                相关资源
                最近更新 更多