A CLI and Python module for executing Blender scripts and managing Blender's Python environment. Built to support SceneProg projects.
Project description
🚀 SceneProgExec: Blender Python Script & Package Manager
SceneProgExec is a command-line tool and Python module that enables seamless execution of Blender scripts and package management within Blender's isolated Python environment.
🔥 Features
✅ Execute Python scripts inside Blender
✅ Install Python packages in Blender's Python environment
✅ Perform a full reset (remove all third-party packages)
✅ Works both as a CLI tool and a Python module
📥 Installation
1️⃣ Install from PyPI
pip install sceneprogexec
OR Clone the Repository
git clone https://github.com/KunalMGupta/SceneProgExec.git
cd SceneProgExec
pip install .
2️⃣ Set Environment Variables
Before using SceneProgExec, set the required environment variables:
export BLENDER_PATH=/Applications/Blender.app/Contents/MacOS/Blender
export BLENDER_PYTHON=/Applications/Blender.app/Contents/Resources/5.0/python/bin/python3.11
To make this permanent, add the lines to your ~/.bashrc or ~/.zshrc:
echo 'export BLENDER_PATH=/Applications/Blender.app/Contents/MacOS/Blender' >> ~/.zshrc
echo 'export BLENDER_PYTHON=/Applications/Blender.app/Contents/Resources/5.0/python/bin/python3.11' >> ~/.zshrc
source ~/.zshrc
Important! In case running this inside a linux container install the following dependencies:
apt update
apt install -y libx11-6 libxi6 libxxf86vm1 libxrender1 libgl1 libxfixes3 libxkbcommon-x11-0
3️⃣ Run CLI Commands
Once installed, you can use sceneprogexec globally.
🛠️ Usage
🔹 Run a Python Script Inside Blender
sceneprogexec run my_script.py --target my_scene.blend
✅ Runs my_script.py inside Blender.
🔹 Install Packages Inside Blender
sceneprogexec install numpy pandas
✅ Installs numpy and pandas inside Blender’s Python.
🔹 Install Packages With a Hard Reset
sceneprogexec install numpy pandas --reset
✅ Removes all third-party packages before installing new ones.
🔹 Reset Blender's Python (Remove All Third-Party Packages)
sceneprogexec reset
🗑️ Deletes all third-party Python packages in Blender.
🏗️ Using as a Python Module
SceneProgExec can also be imported and used in Python scripts:
from sceneprogexec import SceneProgExec
executor = SceneProgExec()
executor.install_packages(["numpy"])
executor.run_script("my_script.py")
executor._delete_all_third_party_packages() # Hard reset
script = """
import bpy
print("Hello, World!")
"""
executor(script, target="test.blend")
🚀 Automatic Cleanup
- Temporary directory (
blender_tmp) is deleted after execution. - No leftover logs or scripts clutter your system.
🛠️ Troubleshooting
❌ Blender not found?
Ensure BLENDER_PATH and BLENDER_PYTHON are correctly set. Run:
echo $BLENDER_PATH
echo $BLENDER_PYTHON
❌ Permission denied?
Try:
chmod +x /usr/local/bin/sceneprogexec
❌ Blender script fails to execute?
Check the log:
cat blender_tmp/blender_log.txt
📝 License
This project is licensed under the MIT License.
👨💻 Author
Developed by Kunal Gupta
GitHub: KunalMGupta
⭐ Support the Project
If you find this tool useful, give it a ⭐ on GitHub!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sceneprogexec-0.2.6.tar.gz.
File metadata
- Download URL: sceneprogexec-0.2.6.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a79c44870abf634b5339211cc35c60acfea44c78b4181309a4c3db213b87e100
|
|
| MD5 |
474bb0744aef16935be9616aecdf1531
|
|
| BLAKE2b-256 |
8259b5308adbc1c597588f38f9415ba34aeecd5db7526f8d2b83a0ce309468da
|
File details
Details for the file sceneprogexec-0.2.6-py3-none-any.whl.
File metadata
- Download URL: sceneprogexec-0.2.6-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e18ce41639adcbd058c5218bcf7e6352a2c84198b8558744067291a4de52e86
|
|
| MD5 |
3c8cbd020f830f563d73e29186fd845f
|
|
| BLAKE2b-256 |
74532e3a3a8888ca4b4d9bc068801369da68276678a58ce8b61772057686017c
|