{
  "__type": "IngestedDoc",
  "__tag": 4010,
  "_content": {},
  "_ordered_sections": [],
  "item_file": null,
  "item_line": null,
  "item_type": null,
  "aliases": [],
  "example_section_data": {
    "__type": "Section",
    "__tag": 4015,
    "children": [],
    "title": [],
    "level": 0,
    "target": null
  },
  "see_also": [],
  "signature": null,
  "references": null,
  "qa": "building:redistributable_binaries",
  "arbitrary": [
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "When "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "python -m build"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " or "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "pip wheel"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " is used to build a NumPy wheel, that wheel will rely on external shared libraries (at least for BLAS/LAPACK and a Fortran compiler runtime library, perhaps other libraries). Such wheels therefore will only run on the system on which they are built. See "
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "the pypackaging-native content under \"Building and installing or uploading artifacts\""
                }
              ],
              "url": "https://pypackaging-native.github.io/meta-topics/build_steps_conceptual/#building-and-installing-or-uploading-artifacts",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " for more context on that."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "A wheel like that is therefore an intermediate stage to producing a binary that can be distributed. That final binary may be a wheel - in that case, run "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "auditwheel"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " (Linux), "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "delocate"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " (macOS) or "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "delvewheel"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " (Windows) to vendor the required shared libraries into the wheel."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The final binary may also be in another packaging format (e.g., a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": ".rpm"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": ".deb"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " or "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": ".conda"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " package). In that case, there are packaging ecosystem-specific tools to first install the wheel into a staging area, then making the extension modules in that install location relocatable (e.g., by rewriting RPATHs), and then repackaging it into the final package format."
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Building redistributable binaries"
        }
      ],
      "level": 0,
      "target": null
    }
  ],
  "local_refs": []
}