Executing script from shell problem

12,880

Solution 1

From the ^M you can see that the file myscript.py is using windows/dos-style line breaks (Windows uses CR LF (carriage return + line feed) at the end of a line. Unix only uses LF - so what you see as ^M is the CR. So what you are not using /usr/bin/python but /usr/bin/python<CR> that does not exist.

You can remove the ^M using dos2unix (do a sudo apt-get install dos2unix to install and then use dos2unix myscript.py).

Solution 2

Do this, then try your Python script:

$ tr -d '\r' < test.py > newtest.py

This removes the carriage returns created from Windows

To further reading, Remove Windows carriage returns with tr

Share:
12,880

Related videos on Youtube

Anonymous Entity
Author by

Anonymous Entity

Updated on September 18, 2022

Comments

  • Anonymous Entity
    Anonymous Entity over 1 year

    Lubuntu Raring Ringtail. I want to be able to execute my scripts with ./

    I start my python script with #!/usr/bin/python and it says

    bash : ./myscript.py: /usr/bin/python^M: bad interpreter: No such file or directory
    

    If I use #!/usr/bin/env python it gives a similar error:

    : No such file or directory
    

    What am I doing wrong?

    I absolutely have python installed, and can run the scripts as normal with python myscript.py