Macs in Chemistry

Insanely great science


Python coding within Xcode

I was reading a recent KDnuggets article on a recent poll "What Python IDE / Editor you used the most in 2020?", as expected the poll was topped by Jupyter Notebook (42%), JupyterLab added extra (14%). Visual Studio Code, PyCharm and Spyder were also popular options.

I started wondering if it was possible to use Xcode to code python, the answers "Yes", but it requires a little setting up to do. After a fair bit of online searching I managed to put together a set of instructions that I thought I'd share.

I'm using Anaconda so the first thing is to get the path to Python. Open up a Terminal window and type

which python

This gives the path to the currently used python installation, if you are not using Anaconda it might be /usr/local/bin/python3 we can also get the python version.

python -V
Python 3.7.6

Now open Xcode and choose "Create a new Xcode project", in the resulting dialog select the "Other" tab and then "External Build System".


Click "Next" and then enter your python project name and check the build tool is pointing to the correct python installation. Click "Next" and navigate to where you want to create the project file.


Now create a python file (choose "New" from the "File" menu, scroll down to the bottom of the selections in the dialog to "Other" and then select "Empty". Click "Next" and save this in the Python project folder you created.


Name the file and remember to add the .py file extension.


The next step is to edit the run scheme, click on the target symbol as shown below and select "Edit Scheme" from the dropdown menu.


In the "Info" tab select "other" from the dropdown menu and a dialog box will open and you need to navigate to the python executable you identified in the Terminal above


Ideally you would simply select python in the dialog as shown below, this is a symbolic link to python3.7 however this does not seem to work. So we need to create a hard link. In the Terminal type

ln python3.7 python37

And then choose python37


Now uncheck debug executable, since we don't plan to debug python.


Now click on the "Arguments" Tab and add the name of the python file.


Now click on the Options tab, click the Use custom working directory check box and then click on the folder icon to navigate to the folder containing the python project. Now close the scheme editor.


Writing some Python Code

Below is a very simple piece of python that takes a Kekule formatted SMILES string and uses RDKit to convert it to the aromatic form, the output is shown in the box bottom right.


So it works, but I can't help but think it should be a little easier to set up.

Last Updated 19 October 2020