install_python_dependencies.sh 1001 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env bash
  2. set -e
  3. # Increase the pip timeout to handle TimeoutError
  4. export PIP_DEFAULT_TIMEOUT=200
  5. DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
  6. ROOT="$DIR"/../
  7. cd "$ROOT"
  8. # updating uv on macOS results in 403 sometimes
  9. function update_uv() {
  10. for i in $(seq 1 5);
  11. do
  12. if uv self update; then
  13. return 0
  14. else
  15. sleep 2
  16. fi
  17. done
  18. echo "Failed to update uv 5 times!"
  19. }
  20. if ! command -v "uv" > /dev/null 2>&1; then
  21. echo "installing uv..."
  22. curl -LsSf https://astral.sh/uv/install.sh | sh
  23. UV_BIN="$HOME/.cargo/env"
  24. ADD_PATH_CMD=". \"$UV_BIN\""
  25. eval "$ADD_PATH_CMD"
  26. fi
  27. echo "updating uv..."
  28. update_uv
  29. echo "installing python packages..."
  30. uv sync --frozen --all-extras
  31. source .venv/bin/activate
  32. echo "PYTHONPATH=${PWD}" > "$ROOT"/.env
  33. if [[ "$(uname)" == 'Darwin' ]]; then
  34. echo "# msgq doesn't work on mac" >> "$ROOT"/.env
  35. echo "export ZMQ=1" >> "$ROOT"/.env
  36. echo "export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES" >> "$ROOT"/.env
  37. fi