| # Python Deployment | |
| See comments in scripts for canonical usage. This page includes additional | |
| notes. | |
| ## Debugging manylinux builds | |
| We build releases under a manylinux derived docker image. When all goes well, | |
| things are great, but when they fail, it often implicates something that has | |
| to do with Linux age-based arcana. In this situation, just getting to the | |
| shell and building/poking can be the most useful way to triage. | |
| Here is the procedure: | |
| ``` | |
| [host ~/iree]$ docker run --interactive --tty --rm -v $(pwd):/work/iree gcr.io/iree-oss/manylinux2014_x86_64-release:prod | |
| [root@c8f6d0041d79 /]# export PATH=/opt/python/cp310-cp310/bin:$PATH | |
| [root@c8f6d0041d79 /]# python --version | |
| Python 3.10.4 | |
| # Two paths for further work. | |
| # Option A: Build like a normal dev setup (i.e. if allergic to Python | |
| # packaging and to triage issues that do not implicate that). | |
| [root@c8f6d0041d79 ]# cd /work/iree | |
| [root@c8f6d0041d79 iree]# pip install wheel cmake ninja pybind11 PyYAML numpy | |
| [root@c8f6d0041d79 iree]# cmake -GNinja -B ../iree-build/ -S . -DCMAKE_BUILD_TYPE=Release -DIREE_BUILD_PYTHON_BINDINGS=ON | |
| [root@c8f6d0041d79 iree]# cd ../iree-build/ | |
| [root@c8f6d0041d79 iree-build]# ninja | |
| # Options B: Creates Python packages exactly as the CI/scripts do. | |
| # (to be used when there is Python arcana involved). The result is organized | |
| # differently from a usual dev flow and may be subsequently more confusing to | |
| # the uninitiated. | |
| [root@c8f6d0041d79 iree]# pip wheel compiler/ | |
| [root@c8f6d0041d79 iree]# pip wheel runtime/ | |
| ``` |