Search code examples
pythonpathenvironment-variablesdevelopment-environment

bash: 'command not found' for python, r and nano


On git bash, I receive a command not found message for python, r and nano.

I am on Windows 10. I do not know what I am doing wrong.

I type

r --version
python --version
nano --version

and they all return command not found.

I read something that had me try

alias python='winpty python.exe'

and it renamed python, but when I tried

touch .bashrc

it returned

touch: command not found

I followed the instructions in a Github course, PS239T. I have been fortunate, except for getting these three programs to work.

I tried

build/console.exe c:/Python36/python.exe

and it returned

build/console.exe: No such file or directory

I tried

PATH=$PATH:/c/Python36/
$ export PATH="$PATH:/c/Python36"
echo 'export PATH="$PATH:/c/Python36"' > .profile

and nothing.

I got Python 64-bit via Anaconda.

I tried setting up the Python 3.4 environment

conda create –n py34 python=3.4 anaconda
./python name_of_your_python_script.py

nothing.

which python

got me a huge directory path:

which: no python in (/c/Users/Edward/bin:/mingw64/bin:/usr/local/bin:usr
/bin:/bin:/mingw64/bin:/usr/bin:c/user/Edward/bin:/c/Program Files
(X86)/Intel/ 1CLS client:/c/Program Files/Intel/1CLS Client:/c/Windows
/System32:/C/Windows:/C/Windows/Sytem32/Wbem:/c/Windows/System32
WindowsPowerShell/V1.0:/c/Program Files/Intel/Intel(R) Management Engine
Components/Dal:/c/Program Files/Intel/Intel(R) Management Engine
Components/IPT:/c/Program Files (x86)/Intel/Intel(R) magament Engine
Components/IPT:/c/Program Files (X86)/Intel/Intel(R) Management Engine
Components/IPT:/c/WINDOWS/Syste,32/Wbem:/c/WINDOWS/System32
/WindowsPowerShell/v1.0:/c/Program Files (x86)/Rand McNally/RNDDock
/GtkSharp/2.12/bin/:/c/Program Files d/AppData/Local/Mircosoft
/WindowsApps:/c/Users/Edward/AppData/Local/Pandoc:/usr/bin/vendor_perl:
/usr/bincore_perl:/c/python36  

I would have just put up the screenshot or copied and pasted it, but I do not know how.

I am sure I made an error somewhere.

I get the same type of results when I try to figure out what is going on with r and nano.

Update 1

Download and install 'Anaconda'

'https://store.continuum.io/cshop/anaconda/'.  

Download the default Python 3 installer 'do not follow the link to version 2'. Use all of the defaults for installation except make sure to check 'Make Anaconda the default Python.'

Install R by downloading and running

'this .exe file from CRAN'  

'http://cran.r-project.org/bin/windows/base/release.htm'.  

Also, please install the 'RStudio IDE'

'http://www.rstudio.com/ide/download/desktop'.  

All you need is RStudio Desktop.

nano is a basic editor and the default that we use in this class. To install it, download the Software Carpentry Windows installer

http://files.software-carpentry.org/SWCarpentryInstaller.exe'  

and double click on the file to run it. 'This installer requires an active internet connection.'

Sublime Text is a more advanced editor. Download Sublime Text 3 'here'

'https://www.sublimetext.com/3'.  

Update 2

I began trying janos advice and ran

/c/Python36/python.exe --version  

and it returned

bash: '/c/python36/python.exe: No such file or directory.

I tried to run

PATH="/c/Python36:$PATH" python.exe --version  

but it returned

bash: python.exe.: command not found

I tried to run

PATH="/c/Python36:$PATH" python --version  

and it returned

bash: python: command not found

Update 3

janos told me I went too far without figuring out the problem, then told me to run

ls -l /c/Python36/python.exe  

and it returned

ls: cannot access '/c/Python36/python.exe': no such file or directory.

janos told me to focus on the first error

bash: '/c/python36/python.exe: No such file or directory.

after entering

/c/Python36/python.exe --version  

and so there I will focus.

janos asserted

Can you open a file explorer and navigate to C:\Python36, and see python.exe there? Probably not.

and is correct.

I ran

C/Users/Edward/Anaconda3/pkgs/python-3.6.3-h9e2ca53_1/python.exe  

with no success.

I ran that in explorer and found that the publisher could not be verified.

Update 4

I went to

'python.org/downloads/release/python-363'  

and downloaded 'Windows x86 embeddable zip file' and Unzipped it in

C/Users/Edward/Anaconda3/pkgs

it worked.

Thank you.

I bet I am having the same problems with 'r' and 'nano'.

I am going to run down the list again and perform all the check. I will do the same thing with 'r' and 'nano'.

Everything worked out for Python. I will do 'nano' and 'r' in due course.

I could not find

/c/python36/  

so I used

/c/Users/Edward/Anaconda3/pkgs/python-3.6.3-embed-win32/  

Update 5

janos is right again. I would need to create the python36 folder as it was not built automatically during the installation. janos' method worked on 'r' and 'subl' or sublime text 3. I gave up on 'nano'.

I found that some of my '.exe' files were in listing with spaces in the names. I moved to the user folder and eliminated any spaces.

I also downloaded version from the official website, and that too helped.

I could not figure out how to get 'nano' to work. I could not even find it on my pc. I used 'subl' instead.


Solution

  • Start from the basics. Try the simplest thing that can possibly work, and make progress in baby steps, from one sane state to the next.

    The first step is to run a by entering its absolute path directly. If the Python executable is at /c/Python36/python.exe, then run this:

    /c/Python36/python.exe --version
    

    This is very simple and it should just work. If it doesn't, the command will give you an error message with clues.

    A next step could be to simulate adding to PATH. Try this:

    PATH="/c/Python36:$PATH" python.exe --version
    

    This is one line. It sets a value to PATH in a way such that it's only active during the execution of the command. After the command completes, the value of PATH will be back to what it was before. This is a good way to test things. Also notice that I prepended to PATH the directory that contains python.exe, not the full path to python.exe. That's an important point, this is how the PATH variable works. It's a list of directories, and all executable files in those directories become easily executable by simply typing their name, without having to type their absolute paths.

    Next, I would try this:

    PATH="/c/Python36:$PATH" python --version
    

    That is, see if you can drop the .exe from the name of the command. I don't have Windows so I cannot test if this works. And maybe it doesn't. (But I think it does.)

    If everything worked so far, then the next step is to make the PATH setting permanent. The way to do that is to put the command PATH="/c/Python36:$PATH" into a file that is always executed when you start a new Git Bash session. If I remember correctly on Windows you can put it in ~/.profile (a file named .profile in your home directory). Where is ~? Here's one way to find it:

    cd
    explorer .
    

    The above opens a file manager inside that directory. You can use a plain-text editor like Notepad or Wordpad to edit it. You can also use this shell command to append the line that updates PATH:

    echo 'PATH="/c/Python36:$PATH"' >> ~/.profile
    

    This line will get executed in all new Git Bash session. Not in the current session, because this file is only executed once.

    If everything above worked, then in a new Git Bash session you should be able to run python --version. If not everything worked, then you need to read the error message you get carefully, and not advance to the next step until the problem is resolved. It's useless to advance to a next step when you are already not in a sane state.

    You can follow the exact same logical process for all the other programs too.