Preparation
-
Must be performed with a user with Administrative privileges.
-
Requires the latest version of Xcode suitable for your OS X. For example, OS X 10.15.x (Catalina) requires Xcode 11.x. Specifically, this is to ensure that locally compiled components of Python libraries (such as
pyobjc
) can be installed successfully.
Check your current (active) Command Line Tools (CLT) version
-
Open up the macOS Terminal and check if and which version of the CLT you have with
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -version
If you run the latest version, you can skip the next steps. -
If you have, for whatever reason, more than one version of Xcode installed, switch to the latest one
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Install Xcode's Command Line Tools if necessary
-
xcode-select --install
β this may ask you to accept the Xcode user license. - It doesn't hurt to also run
sudo xcodebuild
, to be sure the license acceptance process completed. If successful, you should see something like this:The directory /Users/YOURUSERNAME does not contain an Xcode project.
Install Homebrew and use it to install Python 3
Depending on which version of macOS you are running, Python 2.7 and/or Python 3.x may be already installed on your system. You can check this by simply running python -V
in your Terminal.
-
If the shown version is 3.7 or higher, you're good to go and you can skip to the next section.
-
However, if you encounter 2.7 as your installed python interpreter, you have to install Python 3 manually. The easiest way is to use Homebrew, or brew for short. Check out the official web page: https://brew.sh to learn more about it.
-
Install brew by running:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
-
Install the missing Python 3 versions:
- Python 3:
brew install python
- After this stage, you may want to verify that it is correct with
python -V
again.
- Python 3:
Install virtualenv
Note: for users with Anaconda or multiple python versions installed, make sure to use Python 3 from Homebrew. Homebrew uses this default directory: /usr/local/opt/python/libexec/bin
. If needed, replace two of the below commands with /usr/local/opt/python/libexec/bin/python -m pip install virtualenv
and /usr/local/opt/python/libexec/bin/python -m virtualenv venv
.
We utilize virtualenv to maintain an isolated Python environment for OctoPrint development. This prevents other, global Python libraries or updates from breaking OctoPrint. While not strictly required, virtualenv
can save us from headaches, down the road. See the virtualdev docs for more detail.
pip install virtualenv
Installing OctoPrint
Warning: Make sure the path to the location where you git clone, install and run OctoPrint does not contain spaces! Otherwise, Python will not run OctoPrint! This is especially important for users which use iCloud Drive to sync their Folders, as iCloud stores its content in /Users/YOURUSERNAME/Library/Mobile Documents/com~apple~CloudDocs/
- too many fancy characters for Python!
You can check your locations path by running pwd
in the Terminal inside the folder where you cant to execute the next steps inside.
If you don't need the sources (e.g. you just want to run OctoPrint, not develop against it) you can just install from PyPI:
mkdir OctoPrint
cd OctoPrint
virtualenv venv
-
source venv/bin/activate
for bash and zsh shells (the default until 10.15, and the current default shell)
csh, xsh, and fish scripts are also available in the bin folder
You may want to check at this stage, that it is using the correct Python version, if you have more than one installed (python -V
). pip install -U pyobjc
pip install OctoPrint
Alternatively, can download and install from source:
Note
This is not recommended unless you are planning to develop with OctoPrint. Pip installation is more than enough to keep up with updates.
git clone https://github.com/OctoPrint/OctoPrint.git
cd OctoPrint
virtualenv venv
source venv/bin/activate
pip install -U pyobjc
pip install .
Running OctoPrint
Assuming that you are still inside the OctoPrint folder from above:
source venv/bin/activate
octoprint serve
or from any location (tap the Tab key (twice) on your keyboard after every /
to get the next available path content suggestions shown)
/path/to/OctoPrint/venv/bin/octoprint serve
Accessing the web interface
Assuming that you haven't also installed haproxy
you can get to the OctoPrint web interface from its default port of 5000 locally on your Mac via http://localhost:5000/.
Auto start on boot
Credit to Fahim Hossain on medium
Using a plist like this you can start octoprint when turning on the mac, even without logging in.
-
sudo nano /Library/LaunchDaemons/it.YOURNAME.octoprint.plist
β edit this file - replace "USER" with your username (the short one on the left in the terminal)
- assuming you have install OctoPrint in
~/OctoPrint
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:</string>
</dict>
<key>Label</key>
<string>it.YOURNAME.octoprint</string>
<key>Program</key>
<string>/Users/USER/OctoPrint/venv/bin/octoprint</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>LaunchOnlyOnce</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/startup-octoprint.stdout</string>
<key>StandardErrorPath</key>
<string>/tmp/startup-octoprint.stderr</string>
<key>UserName</key>
<string>USER</string>
<key>GroupName</key>
<string>staff</string>
<key>InitGroups</key>
<true/>
</dict>
</plist>
This is a wiki post that anyone with trust level 2 or higher can contribute to. Please do so.
Originally part of the OctoPrint wiki on Github, migrated on 2019-11-13.