| workspace(name = "rules_python_pip_parse_example") |
| |
| local_repository( |
| name = "rules_python", |
| path = "../..", |
| ) |
| |
| load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains") |
| |
| py_repositories() |
| |
| python_register_toolchains( |
| name = "python_3_9", |
| python_version = "3.9.13", |
| ) |
| |
| load("@rules_python//python:pip.bzl", "pip_parse") |
| |
| pip_parse( |
| # (Optional) You can set an environment in the pip process to control its |
| # behavior. Note that pip is run in "isolated" mode so no PIP_<VAR>_<NAME> |
| # style env vars are read, but env vars that control requests and urllib3 |
| # can be passed |
| # environment = {"HTTPS_PROXY": "http://my.proxy.fun/"}, |
| name = "pypi", |
| |
| # Requirement groups allow Bazel to tolerate PyPi cycles by putting dependencies |
| # which are known to form cycles into groups together. |
| experimental_requirement_cycles = { |
| "sphinx": [ |
| "sphinx", |
| "sphinxcontrib-qthelp", |
| "sphinxcontrib-htmlhelp", |
| "sphinxcontrib-devhelp", |
| "sphinxcontrib-applehelp", |
| "sphinxcontrib-serializinghtml", |
| ], |
| }, |
| # (Optional) You can provide extra parameters to pip. |
| # Here, make pip output verbose (this is usable with `quiet = False`). |
| # extra_pip_args = ["-v"], |
| |
| # (Optional) You can exclude custom elements in the data section of the generated BUILD files for pip packages. |
| # Exclude directories with spaces in their names in this example (avoids build errors if there are such directories). |
| #pip_data_exclude = ["**/* */**"], |
| |
| # (Optional) You can provide a python_interpreter (path) or a python_interpreter_target (a Bazel target, that |
| # acts as an executable). The latter can be anything that could be used as Python interpreter. E.g.: |
| # 1. Python interpreter that you compile in the build file (as above in @python_interpreter). |
| # 2. Pre-compiled python interpreter included with http_archive |
| # 3. Wrapper script, like in the autodetecting python toolchain. |
| # |
| # Here, we use the interpreter constant that resolves to the host interpreter from the default Python toolchain. |
| python_interpreter_target = "@python_3_9_host//:python", |
| |
| # (Optional) You can set quiet to False if you want to see pip output. |
| #quiet = False, |
| requirements_lock = "//:requirements_lock.txt", |
| requirements_windows = "//:requirements_windows.txt", |
| ) |
| |
| load("@pypi//:requirements.bzl", "install_deps") |
| |
| # Initialize repositories for all packages in requirements_lock.txt. |
| install_deps() |