Skip to main content

Run any Python script with automatic environment setup, fast package resolution via uv, and reproducible lockfile generation

Project description

Python Package PyPI PyPI Downloadst

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 .py and .ipynb files
  • 🔍 Automatically detects and resolves imports
  • 🛠️ Uses venv or fast uv environments (if available)
  • 📦 Installs only what's needed, only when needed
  • 💡 Reuses environments smartly to save time

Installation

pip install smartrun

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


Download files

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

Source Distribution

smartrun-0.2.11.tar.gz (23.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smartrun-0.2.11-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

Details for the file smartrun-0.2.11.tar.gz.

File metadata

  • Download URL: smartrun-0.2.11.tar.gz
  • Upload date:
  • Size: 23.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for smartrun-0.2.11.tar.gz
Algorithm Hash digest
SHA256 4b601be58852f57a1b936f73e47cd2312fb4ac6c637ee563a6e7a3ea8c5d7b4d
MD5 77e04f619e73109bc92784fe67bd51b9
BLAKE2b-256 12d82f0360deea9a30c04ba14c070fdc53feb76732aa4a93f26e5ceba937aece

See more details on using hashes here.

File details

Details for the file smartrun-0.2.11-py3-none-any.whl.

File metadata

  • Download URL: smartrun-0.2.11-py3-none-any.whl
  • Upload date:
  • Size: 30.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for smartrun-0.2.11-py3-none-any.whl
Algorithm Hash digest
SHA256 e25ff77a0c8c7fb23e4d138a48c0408f112dbb0be94ce4ff6a68d6207cc457dc
MD5 a37461db763d2ae2c37c04cfd9625e09
BLAKE2b-256 71c4e7868193bdc90a8a5a2fbd5119f073bde0b31b7d3262978b07c78b1aeae5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page