Skip to content

Extending/embedding Python documentation outdated/incomplete #88052

Closed as not planned

Description

@fedeevol
mannequin
BPO 43886

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields:

assignee = None
closed_at = None
created_at = <Date 2021-04-19.09:06:07.774>
labels = ['type-bug', '3.9', 'docs']
title = 'Extending/embedding Python documentation outdated/incomplete'
updated_at = <Date 2021-04-19.09:11:00.326>
user = 'https://bugs.python.org/fedeevol'

bugs.python.org fields:

activity = <Date 2021-04-19.09:11:00.326>
actor = 'fede.evol'
assignee = 'docs@python'
closed = False
closed_date = None
closer = None
components = ['Documentation']
creation = <Date 2021-04-19.09:06:07.774>
creator = 'fede.evol'
dependencies = []
files = []
hgrepos = []
issue_num = 43886
keywords = []
message_count = 2.0
messages = ['391370', '391371']
nosy_count = 2.0
nosy_names = ['docs@python', 'fede.evol']
pr_nums = []
priority = 'normal'
resolution = None
stage = None
status = 'open'
superseder = None
type = 'behavior'
url = 'https://bugs.python.org/issue43886'
versions = ['Python 3.9']

Activity

  1. fedeevol commented on Apr 19, 2021

    fedeevolmannequin
    MannequinAuthor

    Hello,
    We had lately some issues with various possible variants of compilation (static vs dynamic) with reference to both embedding and extending Python. There are a bunch of tickets on the topic (ie. gh-65735 or gh-78490) but I guess one important point is that the documentation seems to be not very clear on this. Also various Linux distros seem to take very different approaches (static/dynamic).

    Infact from the current documentation it seems unclear if python-config should be used for both or not. We found also some references to a newer --embed flag (see ie. gh-80902) which is not mentioned in the documentation.
    Some other sources suggest that python-config should not be used when Python is build with Py_ENABLE_SHARED=1. (ref. here: conda/conda-build#2738 (comment))

    Also the example looks probably outdated, as it mentions Python 3.4

    It would be nice if some light would be shed on the correct practice to use and the official documentation updated.

    Thanks,
    Federico

  2. added
    docsDocumentation in the Doc dir
    type-bugAn unexpected behavior, bug, or error
    on Apr 19, 2021
  3. added
    docsDocumentation in the Doc dir
    type-bugAn unexpected behavior, bug, or error
    on Apr 19, 2021
  4. fedeevol commented on Apr 19, 2021

    fedeevolmannequin
    MannequinAuthor

    Just a small addition:

    Specifically in the documentation it talks about embedding:

    "
    It is not necessarily trivial to find the right flags to pass to your compiler (and linker) in order to embed the Python interpreter into your application, particularly because Python needs to load library modules implemented as C dynamic extensions (.so files) linked against it.

    To find out the required compiler and linker flags, you can execute the pythonX.Y-config script which is generated as part of the installation process (a python3-config script may also be available). This script has several options, of which the following will be directly useful to you:
    "

    But doesn't really say anything about extensions. Is the same python-config used therefore for extensions as well?

  5. transferred this issue fromon Apr 10, 2022
  6. encukou commented on Jun 18, 2025

    @encukou
    Member

    The CPython project provides a python-config, but also it's up to the redistributor (Linux distros, Conda, etc.) to make sure this gets installed and matches the install location.
    With distutils gone, more responsibility now lies with third-party projects such as setuptools. See also PEP-739 for recent related development.

    The forum is a much better place for discussions like this. Issues work better if they describe a task to be done in this repo.
    With that, I'll close the issue here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.9 (EOL)end of lifedocsDocumentation in the Doc dirtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions