Yes: for something you want to try out, make a small project folder and put a .venv inside it. Then install Fugu’s dependencies—including openai, if its instructions require it—inside that virtual environment, not globally.
Your current setup already has Python 3.12 and pip working, so there’s no need to reinstall Python or pip just because you want to use virtual environments.[1]
Recommended layout
The virtual environment is local to that one experiment. You can delete the whole sakana-fugu folder later without contaminating other Python projects.
Commands to use
When active, your prompt should begin with something like:
That means python and pip point at this project’s isolated copies.
To leave it:
To resume later:
Why python -m pip
Prefer:
over bare:
It guarantees the package is installed into the Python interpreter currently selected—especially helpful when macOS has multiple Pythons.
Homebrew’s role
Homebrew is a perfectly reasonable way to install Python on macOS:
But it is not necessary to use Homebrew for every Python package. The normal division is:
| Thing | Recommended installer |
|---|---|
| Python runtime | Homebrew, python.org installer, or a version manager such as pyenv |
Per-project libraries (openai, Fugu, etc.) | pip, inside .venv |
| Standalone Python command-line apps | pipx |
| Node tools | npm, pnpm, or bun |
Your active python3 is /usr/local/bin/python3, with packages managed by its pip installation, and Homebrew itself is installed. That is a workable setup—just avoid running global pip install commands unless you specifically intend a global package.[1]
Practical rule
Use this mental model:
- Python is the engine.
- A venv is a disposable, project-specific box holding copies/links to that engine plus its dependencies.
- pip puts libraries into whichever box is currently active.
- Create one venv per project, not one per script file—unless each script has unrelated dependencies.
For a Fugu experiment, your proposed workflow is exactly right: create ~/scripts/sakana-fugu, create .venv, activate it, and install only the packages that project needs.