diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index a113b4608678..547ece29fee0 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,12 +12,21 @@ jobs:
       - uses: actions/checkout@v4
       - uses: actions/setup-python@v5
         with:
-          python-version: 3.12
+          python-version: 3.13
           allow-prereleases: true
       - uses: actions/cache@v4
         with:
           path: ~/.cache/pip
           key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
+      # https://github.com/scipy/scipy/issues/16308#issuecomment-1140477372
+      # https://lxml.de/installation.html#requirements
+      - run: |
+          sudo apt-get update -qq
+          # libgmp-dev for qiskit
+          # libhdf5-dev for keras
+          # libopenblas-dev for scipy
+          # libxml2 for lxml
+          sudo apt-get install --yes libgmp-dev libhdf5-dev libopenblas-dev libxml2 libxslt1-dev libxslt1.1 xsltproc
       - name: Install dependencies
         run: |
           python -m pip install --upgrade pip setuptools six wheel
diff --git a/requirements.txt b/requirements.txt
index bb3d671393b9..608f3b59acb0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,7 +1,8 @@
 beautifulsoup4
 fake_useragent
+git+https://github.com/cclauss/tweepy.git@patch-1 ; python_version >= '3.13'
 imageio
-keras ; python_version < '3.12'
+keras
 lxml
 matplotlib
 numpy
@@ -17,8 +18,8 @@ rich
 scikit-learn
 statsmodels
 sympy
-tensorflow
-tweepy
+tensorflow ; python_version < '3.13'
+tweepy ; python_version < '3.13'
 # yulewalker  # uncomment once audio_filters/equal_loudness_filter.py is fixed
 typing_extensions
 xgboost