skip to Main Content

When I build/run/archive my app in Xcode (on MacOS 12.3) I encounter this error:

env: python: No such file or directory
Command Ld failed with a nonzero exit code

I think I might have changed something with regard to my python environment while working on a school project or messed something up there. However, I can not figure out what is wrong.

I tried reinstalling Xcode and python (using brew and pyenv). I also relinked python using brew. But I still encounter the same error.

Which python gives the following results:

which python3
-> /usr/local/bin/python3

And in my ~/.zshrc I have the following line:

export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH

Any help would be appreciated! If I missed or forgot anything please let me know, I’m quite new to this.

8

Answers


  1. Homebrew only installs the binary python3, just to be safe. Xcode is complaining about a lack of the binary python (note the lack of a 3!).

    You have a couple of options:

    1. When installing python3, Homebrew also creates a libexec folder with unversioned symlinks, such as python (what you’re missing). Note the Caveats printed when installing it:

      $ brew info python
      [email protected]: stable 3.9.10 (bottled)
      ==> Caveats
      Python has been installed as
        /opt/homebrew/bin/python3
      
      Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
      `python3`, `python3-config`, `pip3` etc., respectively, have been installed into
        /opt/homebrew/opt/[email protected]/libexec/bin
      
      See: https://docs.brew.sh/Homebrew-and-Python
      

      You could add this directory to your $PATH, such that python and pip become available; something like the following might suffice:

      echo 'export PATH="'"$(brew --prefix)"'/opt/[email protected]/libexec/bin:$PATH"' 
         >>~/.bash_profile
      

      … although that will need to be modified according to your precise version of Python3, your shell of choice, etc.

    2. Alternatively and more simply, although a little more jankily, you could simply manually create the appropriate symlinks:

      ln -s "$(brew --prefix)/bin/python"{3,}
      
    Login or Signup to reply.
  2. I had posted the same question on nativescript official github and the solution that worked for me was in the answer by the user shilik

    Monterey 12.3 removes python 2. All you need to do is to reinstall
    python2 back to system from this link
    https://www.python.org/downloads/release/python-2718/

    Login or Signup to reply.
    1. install python3
    2. run ‘ln -s /usr/bin/python3 /usr/local/bin/python’,Create a link to Python
    Login or Signup to reply.
  3. Add -f to be effective.

    ln -s -f /usr/local/bin/python3 /usr/local/bin/python
    
    Login or Signup to reply.
  4. This took me days of head scratching, and none of the solutions I found on the internet worked.

    Eventually what DID work for me was this:

    sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/bin/python3 /Applications/Xcode.app/Contents/Developer/usr/bin/python
    

    I used the find command to find all instances of python in the file hierarchy:

    find / -name python*
    

    and I saw that there was a symbolic link labelled python3 in /Applications/Xcode.app/Contents/Developer/usr/bin/ that was linked to a python instance deep within the bowels of Xcode.

    However there was no symbolic link labelled python which seems to be what Xcode is looking for.

    So I created a symbolic link linking python to python3 and that did the trick.

    For what it’s worth, I installed python via pyenv which I installed through homebrew on a 2020 Mac mini M1.

    Login or Signup to reply.
  5. For me the problem was with missing python
    env: python: No such file or directory

    BUT in the end missing was python version 2.x after updating to macOS Monterey 12.5 (21G72).
    Problem was resolved by installing python from:
    https://www.python.org/downloads/release/python-2718/

    What I’ve also tried but you probably don’t have to do:

    • sudo brew install python
    • sudo brew upgrade
    • sudo ln -s -f /usr/local/bin/python3 /usr/local/bin/python
    • sudo ln -s $(which python3) /usr/local/bin/python
    • sudo ln -s $(which python3) /Applications/Xcode.app/Contents/Developer/usr/bin/python
    • sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/bin/python3 /Applications/Xcode.app/Contents/Developer/usr/bin/python
    Login or Signup to reply.
  6. In my case, created symbolic link for dev_appserver.py like below.

    ln -s /opt/local/bin/python2.7 /usr/local/bin/python
    ln -s /opt/local/bin/python2.7 /usr/local/bin/python2
    

    Command location and version should be adapted to your environment.

    Login or Signup to reply.
  7. I was able to solve this issue with the above-mentioned answers.

    In my case, while I was trying npm install in my node project and was facing this issue.

    Note: % brew install python is a prerequisite for all the below steps! Test if python is correctly installed by brew python info

    1. First thing which comes to mind is if python is correctly installed and the path is set correctly.

    python --version was giving zsh - python not found error while python3 --version was a success.

    1. Next steps were to set the correct path. I did the below steps and it worked:
    • echo "alias python=/usr/bin/python3" >> ~/.zshrc
    • ln -s -f "$(brew --prefix)/bin/python"{3,}
    • ln -s -f "$(which python3)"{3,}

    What I was missing was to run brew install python, and it worked like a charm!

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search