Skip to content

Python 3.11: include python3.dll as part of binary distribution #15594

@josephsl

Description

@josephsl

Hi,

Part of #12064 work and subsequent pull requests:

Background:

Recent Python releases defined limited C API for use by extensions. This allows C extensions to create a .pyd file that will work across Python 3.x releases, including 3.6 and later.

Is your feature request related to a problem? Please describe.

Suppose an add-on uses external libraries interfacing with CPython runtime (usually .pyd files). If these C extensions are written using limited API, it will allow add-ons to work across Python 3.x releases. At the moment these modules must be accompanied by python3.dll from Python 3.7 installation folder because NVDA itself does not include python3.dll as part of binary distribution.

Describe the solution you'd like

As part of Python 3.11 upgrade, include python3.dll as part of NVDA binary distribution.

Describe alternatives you've considered

Let add-ons ship with multiple versions of third-party dependencies, one for each Python version NVDA supports.

Additional context

Add-ons affected include Resource monitor, Sound Splitter, and others using psutil module.

A bigger problem may arise once 64-bit CPython runtime is used as add-ons must include dependencies supporting both 32-bit and 64-bit Python runtime.

Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    p2https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#prioritytriagedHas been triaged, issue is waiting for implementation.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions