App Support.

We're here to help.



Viscosity Crashing At Launch Or After Update on Mac OS X

Viscosity requires a number of system frameworks to be able to run normally. One of these is the Python framework (and its PyObjC module). If the Python framework has been modified or deleted, Viscosity will be unable to launch.

Please note: This is no longer a problem as of OS X 10.11 (El Capitan). System Integrity Protection (SIP) protects the system frameworks from damage, including the Python framework. If you're encountering a problem starting Viscosity on OS X 10.11 or later version of macOS, and have not manually disabled SIP, please get in touch with our support staff instead.

Confirming The Problem

If Viscosity isn't starting you can check if this is the cause of the problem by checking the Console log. If a message is listed from Viscosity containing the text "PyRun_SimpleFile failed with file '/Applications/Viscosity.app/Contents/Resources/main.py'" then the Python framework is most likely damaged.

Resolving The Problem

To resolve the issue the system Python framework, located at "/System/Library/Frameworks/Python.framework", must be restored to original condition. This can be done in several ways:

  • Restore the Python.framework from a Time Machine backup
  • Copy Python.framework from another Mac and replace the local copy
  • Reinstall Mac OS X (it's not necessary to erase your drive first, however it is prudent to make a backup of all important files first)

How It Is Caused

Unfortunately it appears that just recently some software and/or installation guides for the software damage the Python.framework or PyObjC modules. Please be aware that the system frameworks located in the /System directory (like Python.framework) should never be modified under any instance.

If you encounter any software that modifies the Python framework, or recommends this in the documentation, the developers/writers should be alerted to the fact that doing so will break many applications and components. The correct approach is to use a secondary Python installation (such as from MacPorts), and install any custom modules or PyObjC versions to this installation.