| #!/usr/bin/env bash |
| set -euo pipefail |
|
|
| ENV_NAME="${1:-crewai_test}" |
| ENV_DIR="/Applications/anaconda3/envs/$ENV_NAME" |
| ENV_PYTHON="$ENV_DIR/bin/python" |
| ENV_PIP="$ENV_PYTHON -m pip" |
|
|
| echo ">>> Creating conda env: $ENV_NAME" |
| conda create -n "$ENV_NAME" python=3.12 -y |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| echo ">>> Step 1 β base packages" |
| $ENV_PIP install \ |
| crewai==1.9.3 crewai-tools==1.9.3 \ |
| python-dotenv==1.1.1 httpx==0.28.1 modal==1.5.0 gradio==6.17.3 \ |
| openinference-instrumentation-crewai==1.1.9 \ |
| openinference-instrumentation-openai==0.1.51 \ |
| --only-binary :all: |
|
|
| echo ">>> Step 2 β upgrade openai + install litellm (--no-deps)" |
| $ENV_PIP install "openai>=2.20.0,<3.0.0" litellm==1.88.1 fastuuid --no-deps --force-reinstall |
|
|
| echo ">>> Step 3 β upgrade OTel packages for phoenix compat (--no-deps)" |
| $ENV_PIP install \ |
| "opentelemetry-sdk>=1.42.0" \ |
| "opentelemetry-semantic-conventions>=0.60b0" \ |
| "opentelemetry-api>=1.42.0" \ |
| "opentelemetry-exporter-otlp>=1.42.0" \ |
| "opentelemetry-proto>=1.42.0" \ |
| --no-deps --force-reinstall |
|
|
| echo ">>> Step 4 β phoenix transitive deps" |
| $ENV_PIP install \ |
| aioitertools alembic email-validator authlib joserfc jsonpath-ng ldap3 \ |
| grpc-interceptor prometheus-client psutil pystache sqlean-py strawberry-graphql \ |
| jmespath "aiosqlite>=0.22.1" \ |
| "pydantic-ai-slim>=1.95.0" anthropic "google-genai>=1.0.0" \ |
| "mcp>=1.27.0" "tokenizers>=0.21.0" \ |
| --only-binary :all: |
|
|
| echo ">>> Step 5 β scikit-learn metadata (phoenix reads its version at import)" |
| $ENV_PIP install scikit-learn --force-reinstall --only-binary :all: |
|
|
| echo ">>> Step 6 β arize-phoenix itself (--no-deps)" |
| $ENV_PIP install arize-phoenix==17.2.0 arize-phoenix-client arize-phoenix-evals arize-phoenix-otel --no-deps |
|
|
| echo ">>> Verifying import..." |
| $ENV_PYTHON -c " |
| from phoenix.otel import register |
| from openinference.instrumentation.openai import OpenAIInstrumentor |
| from crew2 import run_pipeline, generate_image, generate_voice, transcribe_audio |
| print('All imports OK') |
| " 2>&1 | grep -E '^All|Traceback|Error' |
|
|
| echo "" |
| echo "=== Setup complete: $ENV_NAME ===" |
| echo "Run: conda activate $ENV_NAME && python app.py" |
|
|