AdjunctProfessorFalcon
AdjunctProfessorFalcon

Reputation: 1840

Installed Nose but cannot use on command line

I installed Nose on a Mac OSX 10.10.5 with Python2.7.9 using easy_install. The installation appeared to be successful:

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

But now, when I try even basic stuff with nosetests on the command line, like nosetests -h or which nosetests I just get:

bash: nosetests: command not found

I have tried uninstalling, reinstalling using pip, tried installing with sudo and then running sudo nostests in the directories with tests scripts as other posts have suggested, but nothing seems to work.

The original purpose for installing was to use nose to run some basic tests with tests scripts I had written for these simple web.py apps. But nothing works, just keep getting the command not found response.

What's strange is that, when I open up the Python interpreter in Terminal, and do something like:

import nose 
nose.main()

I get the expected result of:

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

OK

So clearly it's installed....somewhere. Any suggestions for what the hell is going on here?

Upvotes: 20

Views: 24264

Answers (9)

Lorenz
Lorenz

Reputation: 165

I had to use

Nosetest

or

python3 -m "nose"

Apparently this is the way Nosetest should be used in Python3. See also How to make nosetests use python3

Upvotes: 2

Neil Murphy
Neil Murphy

Reputation: 57

This can also happen if you were running nose within a virtual environment, and that virtual environment has been deactivated. If this is the case, reactivate with source bin/activate.

Upvotes: 0

Chihuen
Chihuen

Reputation: 1

I try to reinstall the pip, it doesn't work but lastly, when i use sudo ...it works

pip3 uninstall nose

sudo pip3 install nose

and

which nosetests

/usr/local/bin/nosetests

Upvotes: 0

Boris Yakubchik
Boris Yakubchik

Reputation: 4463

From what I understand, everyone is moving to pytest - an actively-maintained testing framework.

It's not a solution to this problem, but it's likely the most-appropriate choice if you are still using nose.

Upvotes: 0

Razikh
Razikh

Reputation: 173

I had this exact issue on OS X EI Captain with Python 2.7.10.

First I installed nose using pip:

$sudo pip install nose 

which failed on the first attempt. Went through on the second attempt. But the nosetests command didn't work.

In order to fix this:

Step 1: Don't uninstall nose if it was installed already using pip as in my case.

Step 2:

$cd /usr/bin

$sudo easy_install nose 

Above command finds the nosetests script (which was installed by pip earlier) & sets it under /usr/local/bin

Step 3: Try nosetests

$nosetests

----------------------------------------------------------------------
Ran 0 tests in 0.047s

OK

Upvotes: 15

yolanda.ly
yolanda.ly

Reputation: 311

There are lots of error occurred when using pip install packages on Mac OS. So I recommend you install nose using easy_install.

$ pip uninstall nose

$ sudo easy_install nose

Then you can try nosetests now :)

Upvotes: 30

Jacob Herold
Jacob Herold

Reputation: 31

I found that going to

Library/usr/bin 

and running

sudo easy_install nose

it seems that sometimes it doesn't automatically install nose (and therefore nosetests functionality). Do the above lines, and you should be a-ok.

I wish i had a better explanation for why this happened, but i'm still pretty new, myself.

Upvotes: 3

Roland Smith
Roland Smith

Reputation: 43533

On UNIX-like systems like OS X, the script should be in /usr/local/bin. Make sure that directory is in the PATH environment variable in the shell that you use.

If not, you can also locate it using find, e.g:

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

This means; search for a file whose name starts with nosetests, which has execute permissions set. Print the path name and stop.

Upvotes: 12

Rich L
Rich L

Reputation: 369

First, can you run 'python' from the command line? nosetests should be in that same directory:

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

It should also be in the downloaded nose package:

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

Upvotes: 0

Related Questions