diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3f331f0cc2aa5b5d8def8df4b97f8e09526b25b7..4f1e6568b9317752214ac8654b38990752eec9e7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,7 +2,8 @@ Python 2.7 POCL:
   script:
   - export PY_EXE=python2.7
   - export PYOPENCL_TEST=portable
-  - export EXTRA_INSTALL="pybind11 numpy mako mpi4py"
+  - export EXTRA_INSTALL="pybind11 cython numpy mako mpi4py"
+  # cython is here because pytential (for now, for TS) depends on it
   - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
   - ". ./build-and-test-py-project.sh"
   tags:
@@ -19,7 +20,8 @@ Python 3 Nvidia K40:
   script:
   - export PY_EXE=python3
   - export PYOPENCL_TEST=nvi:k40
-  - export EXTRA_INSTALL="pybind11 numpy mako"
+  - export EXTRA_INSTALL="pybind11 cython numpy mako"
+  # cython is here because pytential (for now, for TS) depends on it
   - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
   - ". ./build-and-test-py-project.sh"
   tags:
@@ -35,7 +37,8 @@ Python 3 POCL:
   script:
   - export PY_EXE=python3
   - export PYOPENCL_TEST=portable
-  - export EXTRA_INSTALL="pybind11 numpy mako mpi4py"
+  # cython is here because pytential (for now, for TS) depends on it
+  - export EXTRA_INSTALL="pybind11 cython numpy mako mpi4py"
   - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
   - ". ./build-and-test-py-project.sh"
   tags:
@@ -52,7 +55,8 @@ Python 3 POCL:
   script:
   - export PY_EXE=python3
   - export PYOPENCL_TEST=portable
-  - export EXTRA_INSTALL="pybind11 numpy mako mpi4py"
+  # cython is here because pytential (for now, for TS) depends on it
+  - export EXTRA_INSTALL="pybind11 cython numpy mako mpi4py"
   - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
   - ". ./build-and-test-py-project.sh"
   tags:
diff --git a/requirements.txt b/requirements.txt
index 86f8d11b463d2bd4b5e831cd179f9b5474a8b1d7..62920342df6e2e29d0772be0b2e7cc705f87a214 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,9 +3,15 @@ git+https://gitlab.tiker.net/inducer/gmsh_interop.git
 git+https://gitlab.tiker.net/inducer/modepy.git
 git+https://gitlab.tiker.net/inducer/pyopencl.git
 git+https://gitlab.tiker.net/inducer/islpy.git
-git+https://gitlab.tiker.net/inducer/loopy.git
+
 
 # required by pytential, which is in turn needed for some tests
+git+https://gitlab.tiker.net/inducer/pymbolic.git
+
+# also depends on pymbolic, so should come after it
+git+https://gitlab.tiker.net/inducer/loopy.git
+
+# more pytential dependencies
 git+https://gitlab.tiker.net/inducer/boxtree.git
 git+https://gitlab.tiker.net/inducer/sumpy.git
 git+https://gitlab.tiker.net/inducer/pytential.git