setting-up-streamlit-environment
Setting up Python environments for Streamlit apps. Use when creating a new project or managing dependencies. Covers uv for dependency management and running apps.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
Streamlit environment
Use whatever dependency management the project already has (pip, poetry, conda, etc.). If starting fresh and uv is available, it's a good default—fast, reliable, and creates isolated environments automatically.
If uv is not installed, ask the user before installing it.
Using uv
If uv is available, here's how to set up a Streamlit project.
Quick start (venv only)
For simple apps, just create a virtual environment:
uv venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
uv pip install streamlit
Run with:
streamlit run streamlit_app.py
Full project setup
For larger projects or when you need reproducible builds:
uv init my-streamlit-app
cd my-streamlit-app
uv add streamlit
This creates:
-
pyproject.tomlwith dependencies -
uv.lockfor reproducible builds -
.venv/virtual environment
Run with:
uv run streamlit run streamlit_app.py
With options
Avoid setting options unless you have a specific reason:
streamlit run streamlit_app.py --server.headless true # Only for automated/CI environments
Add dependencies
# With venv approach
uv pip install plotly snowflake-connector-python
# With full project (uv init)
uv add plotly snowflake-connector-python
Project structure
Keep it simple. For most apps:
my-streamlit-app/
├── .venv/
└── streamlit_app.py
Only add more when needed:
-
app_pages/→ Only for multi-page apps -
.streamlit/config.toml→ Only if customizing theme or settings -
.streamlit/secrets.toml→ Only if using secrets (add to.gitignore) -
pyproject.toml→ Only if usinguv initfor reproducible builds
Convention
Name your main file streamlit_app.py for consistency. This is what Streamlit expects by default.
What goes in the main module:
- When using navigation: it's a router that defines pages and runs them
- When there's no navigation: it's the home page with your main content
pyproject.toml Example
[project]
name = "my-streamlit-app"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
"streamlit>=1.40.0",
"plotly>=5.0.0",
"snowflake-connector-python>=3.0.0",
]
[tool.uv]
dev-dependencies = [
"pytest>=8.0.0",
]
References
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-01-20
- Mise à jour de l’index
- 2026-02-04
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!