quantum_jim
quantum_jim

Reputation: 218

Self-contained Python environment for Mac OS

I need to make a fully self-contained Python environment for Mac, which can be transferred between different Macs running OSX and function independently of any other Python installations (or lack thereof).

In the enviroments I have created (using venv), I find that the /bin/python file and others are in fact aliases. When I replace these aliases with the original executables, the enviroment still does not work on other computers due references to files within a Python installation, such as

Library not loaded: /Library/Frameworks/Python.framework/Versions/3.9/Python

Is there a way to make the environment fully self-contained?

I would guess so, since tools such as pyinstaller and cx_freeze exist to make executables out of Python applications. So these must contain standalone environments somehow. But for my purposes, it is the enviroment that I need. Not an executable as these tools provide.

Upvotes: 2

Views: 410

Answers (1)

Jacob Lee
Jacob Lee

Reputation: 4670

You can try using a virtual environment. Python comes with venv which allows you to create virtual environments. You could consider them self-contained, since all the necessary scripts for running Python are in the virtual environment. This goes with the package dependencies as well. You can have a variety of packages installed on your computer, but the virtual environment will have none of them installed (unless, of course, you install them yourself).

To create a virtual environment, run:

$ py -3.9 -m venv virtualenv

You can replace 3.9 with whichever Python version you are using and you can replace virtualenv with whatever you want to name your virtual environment.

To activate the virtual environment, you would run:

$ source virtualenv/Scripts/activate

And to deactivate it, you would run:

$ deactivate

Upvotes: 1

Related Questions