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.
-
Are you sure that what's in .zshrc affects Xcode? I don't know, but I would not bet on it, as Xcode is not normally launched from a shell.Ture Pålsson– Ture Pålsson2022年03月14日 15:00:33 +00:00Commented Mar 14, 2022 at 15:00
-
Yes I don't think that should matter. However I added it as I'm quite new and normally I run the NativeScript project in the terminal (which uses Xcode), so I thought that might be affected by it. But indeed, also running it in Xcode also triggers this error.Jan Mark Dannenberg– Jan Mark Dannenberg2022年03月14日 15:38:32 +00:00Commented Mar 14, 2022 at 15:38
9 Answers 9
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:
When installing
python3, Homebrew also creates alibexecfolder with unversioned symlinks, such aspython(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-PythonYou could add this directory to your
$PATH, such thatpythonandpipbecome 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.
Alternatively and more simply, although a little more jankily, you could simply manually create the appropriate symlinks:
ln -s "$(brew --prefix)/bin/python"{3,}
6 Comments
brew --prefix, in fact. That said, modifying $PATH is difficult to explain predictably; there's lots and lots of variance on different systems as to how the final value comes into existence — if it didn't work, I suggest you dive into debugging your $PATH settings.Add -f to be effective.
ln -s -f /usr/local/bin/python3 /usr/local/bin/python
4 Comments
python and python3 commands both link to 3.13.1I 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/
3 Comments
brew install pyenv 2) Install Python 2.7 with pyenv install 2.7.18 and then pyenv global 2.7.18 3) Then set the default paths typing in the console export PATH="${HOME}/.pyenv/shims:${PATH}"- Install python3
- Run
ln -s /usr/bin/python3 /usr/local/bin/python, which creates a symbolic link (shortcut) from/usr/local/bin/pythonto/usr/bin/python3- it means when you run python in the terminal, it will execute/usr/bin/python3
4 Comments
ln -s /usr/bin/python3 /usr/local/bin/pythonsudo before the command @RobbieFor 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 pythonsudo brew upgradesudo ln -s -f /usr/local/bin/python3 /usr/local/bin/pythonsudo ln -s $(which python3) /usr/local/bin/pythonsudo ln -s $(which python3) /Applications/Xcode.app/Contents/Developer/usr/bin/pythonsudo ln -s /Applications/Xcode.app/Contents/Developer/usr/bin/python3 /Applications/Xcode.app/Contents/Developer/usr/bin/python
1 Comment
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.
Comments
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 info python
- First thing which comes to mind is if python is correctly installed and the path is set correctly.
python --versionwas givingzsh - python not found errorwhilepython3 --versionwas a success.
- Next steps were to set the correct path. I did the below steps and it worked:
echo "alias python=/usr/bin/python3" >> ~/.zshrcln -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!
Comments
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.
Comments
Please install Python through https://www.python.org/downloads/ or https://www.python.org/ftp/python/3.13.3/python-3.13.3-macos11.pkg, despite your existing Python version.
I had Python 3 on my Mac (I had used brew install python earlier). Now I have again installed Python using the above URL, and after I ran the below command (refer https://docs.aws.amazon.com/cli/v1/userguide/install-macos.html#install-macosos-bundled-sudo) and successfully installed
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws