Skip to main content

Transform a virtual environment into a valid `.app` so that it can do .app-y

Project description


On a Mac, if you want to access the GUI, or various other mac-specific APIs, your executable needs to be present in a bundle. This can be an "app bundle" or a "framework bundle". The System python, python, Homebrew Python, and pyenv python (with a little work) are all so-called "framework builds" which include such a bundle.

To build a real bundle, something that you can distribute to someone else, you probably want to use py2app. However, if you just want to pip install a tool that somebody else wrote which happens to want to present some GUI elements, or you want to develop something of your own in a virtualenv without setting up the requisite py2app infrastructure (including a, etc), this might be the tool for you.

How to use it

If you're using someone else's code and you just want to make a given virtualenv bundle-y, just pip install venvdotapp && venvdotapp.

For example:

$ mktempenv
$ pip install wxpython
$ pycrust
This program needs access to the screen. Please run with a
Framework build of python, and only when you are logged in
on the main display of your Mac.
$ pip install venvdotapp
$ venvdotapp
$ pycrust
<A GUI Window Pops Up>

If you're writing your own program which requires an app bundle, you don't need to use the command-line script, just put the following at the very top of your main script:

from venvdotapp import require_bundle

Note that this will raise an exception if your base Python is not a framework build and therefore not capable of displaying a GUI.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for venvdotapp, version 19.7.1
Filename, size File type Python version Upload date Hashes
Filename, size venvdotapp-19.7.1-py2.py3-none-any.whl (7.8 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size venvdotapp-19.7.1.tar.gz (3.7 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page