Hao
Hao

Reputation: 2079

ubuntu /usr/bin/env: python: No such file or directory

I update the kernel, after that the Ubuntu doesn't work well, PS: I try to exec "meld" command, it will report that "/usr/bin/env: python: No such file or directory", then I exec "sudo apt-get install python" and get the result "python is already the newest version.", what should I do for it.


I'm not good at linux, can you tell me how to revert my linux to the last right status, or reinstall the python normally.

Upvotes: 200

Views: 453500

Answers (11)

Frederick Valdez
Frederick Valdez

Reputation: 61

Check if python appears with this command:

dpkg -l | grep '^ii' | grep python

or

ls /usr/bin/python*
ls /usr/local/bin/python*

These commands should check if it is installed and provide you with the Python paths.

sudo update-alternatives --install /usr/bin/python3 python /usr/bin/python3.x 1 
// Alternative 1
sudo ln -s /usr/bin/python3 /usr/bin/python
// Alternative 2
sudo update-alternatives --config python3

replace python3.x with the version you use.

You can also try this configuration with python2, you just need to modify python3.

Upvotes: 0

starriet 차주녕
starriet 차주녕

Reputation: 3948

Just modify the shebang line

from #!/usr/bin/env python to #!/usr/bin/env python3, you're good to go.


  • This is automatically done by sudo apt install python-is-python3, as @mchid answered.

  • Why this works: If you do $ python, it will say Command 'python' not found ..., but if you do $ python3, it should work.

Upvotes: 12

Alex
Alex

Reputation: 3861

For those with macOS or M1 machines (tested on 12.5) symlinking /usr/bin/python3 will not work because it's a shim to the xcode python3 installation. Symlinking against the shim will just result in an endless cycle of being prompted by the xcode installation tool to install required binaries.

Instead try:

sudo ln -s /Library/Developer/CommandLineTools/usr/bin/python3 /usr/local/bin/python

to bypass the shim and symlink to the python3 binary (technically this is a symlink to several symlinks to the actual python3 binary installed by xcode but it's sufficient since we really just need to bypass the shim).

As this might change in the future, I'll include these readings on how certain binaries are shimmed in macOS:

https://macops.ca/developer-binaries-on-os-x-xcode-select-and-xcrun/ https://randomtechnicalstuff.blogspot.com/2016/05/os-x-and-xcode-doing-it-apple-way.html

that may be of interest to some.

Upvotes: 16

Francesco Mantovani
Francesco Mantovani

Reputation: 12357

Problem scenario:

/usr/bin/env: ‘python’: No such file or directory

Possible Solution #1

  • If Python 3 is not installed, install it: apt-get install python3

Possible Solution #2

  • If Python 3 has been installed, run these commands: whereis python3

  • Then we create a symlink to it: sudo ln -s /usr/bin/python3 /usr/bin/python

EDIT: hi everyone, I noticed that @mchid posted a better solution below my answer: sudo apt install python-is-python3.

Upvotes: 365

xenonsmart dev
xenonsmart dev

Reputation: 101

creating a symbolic link solved the issue for me

sudo ln -s /usr/bin/python3 /usr/bin/python

Upvotes: 5

ahjim0m0
ahjim0m0

Reputation: 104

Additional possible solution if the other suggestions from the mates are not working is to convert the .py scripts into UNIX format.

You can do so by installing dos2unix, before converting your scripts. You can do with something like this:

sudo apt install dos2unix

Once installed, you can convert your script accordingly:

dos2unix <filename>.py

You can read more here about dos2unix.

--

Separately, do try to run your script locally and see if it's working, you will also need to take note to include the hashbang in your script.

#!/usr/bin/env python3
  • Note that above is for python3, use python if necessary.

Upvotes: 3

DanielM
DanielM

Reputation: 4043

For people facing the same issue with MacOS and installed python3 with homebrew:

sudo ln -s /opt/homebrew/bin/python3 /opt/homebrew/bin/python

Upvotes: 23

Norman
Norman

Reputation: 3215

May 2022: For anyone who just updated to Monterey 12.3 it appears the update replaces python with python3. Downloading python fixes the issues in Xcode and git command line. Be sure to read the two comments below.

Upvotes: 30

Esmaeeil Moradi
Esmaeeil Moradi

Reputation: 89

This answer for android build system error For Python 3

If you get a "/usr/bin/env 'python' no such file or directory" error message, use one of the following solutions: If your Ubuntu 20.04.2 LTS is a newly installed (vs. upgraded) Linux version:

sudo ln -s /usr/bin/python3 /usr/bin/python

f using Git version 2.19 or greater, you can specify --partial-clone when performing repo init. This makes use of Git's partial clone capability to only download Git objects when needed, instead of downloading everything. Because using partial clones means that many operations must communicate with the server, use the following if you're a developer and you're using a network with low latency:

repo init -u https://android.googlesource.com/platform/manifest -b master --partial-clone --clone-filter=blob:limit=10M

you can see document in Downloading the Source

Upvotes: 4

mchid
mchid

Reputation: 3108

On Ubuntu 20.04 and newer, there is a package to fix this problem. Run the following commands:

sudo apt update
sudo apt install python-is-python3

Run apt-cache show python-is-python3 for more info.

Upvotes: 215

aSteve
aSteve

Reputation: 2016

Having been momentarily stumped by this error myself, I thought I'd post how I fixed my problem.

My problem was an error:

: No such file or directory

Which made little sense to me. My problem is that my editor had silently converted the script from Unix LF to Windows CR/LF line-termination. A rather unfortunate upshot of this is that "#!/usr/bin/env python" actually became "#!/usr/bin/env python\015" where \015 is the invisible CR character... /usr/bin/env was, then, unable to find a command "python\015" - hence the file-not-found error.

Converting the script to Unix line-ending convention solved my problem... but only after a few minutes' head-scratching.

Upvotes: 75

Related Questions