Run any Python script with automatic environment setup, fast package resolution via uv, and reproducible lockfile generation
Project description
smartrun
Run any Python script in a clean, disposable virtual environment — automatically.
smartrun 🚀
Run Python and Jupyter files with zero setup, zero pollution. Just run it.
smartrun scans your script or notebook, detects the required third-party packages, creates (or reuses) an isolated environment, installs what’s missing — and runs your code.
✅ No more ModuleNotFoundError
✅ No more cluttered global site-packages
✅ Just clean, reproducible execution — every time
Features
- 🧪 Supports both
.pyand.ipynbfiles - 🔍 Automatically detects and resolves imports
- 🛠️ Uses
venvor fastuvenvironments (if available) - 📦 Installs only what's needed, only when needed
- 💡 Reuses environments smartly to save time
Installation
🔹 Basic usage
pip install smartrun
This includes support for:
-
Running standard Python scripts
-
Automatic environment setup
-
Fast dependency resolution with uv
-
Reproducible installs via pip-tools
🔹 With Jupyter notebook support
If you want to run .ipynb notebook files using smartrun, install the optional jupyter dependencies:
pip install "smartrun[jupyter]"
🔹 Development install (optional)
For contributors and development work, install with:
pip install "smartrun[dev,jupyter]"
Requires Python 3.10+
Usage
smartrun your_script.py
Notebook
smartrun your_notebook.ipynb
Example file that we want to run
#some_file.py
import numpy as np
import pandas as pd
from rich import print
df = pd.DataFrame(np.random.randn(5, 3), columns=list("ABC"))
print("Data:")
print(df, end="\n\n")
print("Column means:")
print(df.mean())
Create an environment
✅ Create an environment : Windows / macOS / Linux
smartrun env .venv
✅ Activate the environment: Windows
.venv\Scripts\activate
🐧 macOS/Linux
✅ Activate the environment: macOS/Linux source .venv/bin/activate
🪟 Windows
✅ Activate the environment: Windows.venv\Scripts\activate
Tip: smartrun will automatically create and manage a virtual environment if none is activated — but you're always free to bring your own.
✅ Run the script: Windows / macOS / Linux
smartrun some_file.py
✅ Run the jupyter file: Windows / macOS / Linux
smartrun some_file.ipynb
Data Science Examples
🌸 Iris dataset analysis
# iris.py
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
# Load data
df = sns.load_dataset('iris')
# Show first few rows and summary
print(df.head(), end="\n\n")
print(df.describe(), end="\n\n")
# Plot pairwise relationships
sns.pairplot(df, hue='species')
plt.savefig('iris_pairplot.png')
smartrun iris.py
🐼 Titanic Dataset demo
# titanic.ipynb
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# Load dataset from GitHub
url = 'https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv'
df = pd.read_csv(url)
# Basic stats
print(df[['Survived', 'Pclass', 'Sex']].groupby(['Pclass', 'Sex']).mean())
# Plot survival by class
sns.countplot(data=df, x='Pclass', hue='Survived')
plt.title('Survival Count by Passenger Class')
plt.savefig('titanic_survival_by_class.png')
print("Saved plot → titanic_survival_by_class.png")
smartrun titanic.ipynb
If the dependencies aren’t installed yet, smartrun will fetch them automatically.
Why smartrun?
Because setup should never block you from running great code. Whether you're experimenting, prototyping, or sharing — smartrun ensures your script runs smoothly, without dependency drama.
Contributing
Contributions are welcome! 🧑💻
If you’ve got ideas, bug fixes, or improvements — feel free to open an issue or a pull request. Let’s make smartrun even smarter together.
License
BSD 3‑Clause — see LICENSE for details.
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 smartrun-0.2.14.tar.gz.
File metadata
- Download URL: smartrun-0.2.14.tar.gz
- Upload date:
- Size: 23.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
852699c6017193468b82a76ec556bb547b9b392aee47a77e13d2931fba6e320c
|
|
| MD5 |
4d8c90f72de178f79490f076b6a6edc7
|
|
| BLAKE2b-256 |
4a9225ab46d57d3a220e90411ede995a4de6a4bc8a4af8b9cf97bb9303955698
|
File details
Details for the file smartrun-0.2.14-py3-none-any.whl.
File metadata
- Download URL: smartrun-0.2.14-py3-none-any.whl
- Upload date:
- Size: 31.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
408ae7987c704117bf0fe43eecac2d84b85373dd526cb6795806d385fefe79d5
|
|
| MD5 |
d1ac5c13fcab27894afb27af1f42443b
|
|
| BLAKE2b-256 |
d83f839249480db9174da795e25b8181557a19dad8cb62e17750c3817edaebf5
|