Extending/embedding Python documentation outdated/incomplete #88052
Copy link
Copy link
Closed as not planned
Labels
3.9 (EOL)end of lifeend of lifedocsDocumentation in the Doc dirDocumentation in the Doc dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
| 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']Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
3.9 (EOL)end of lifeend of lifedocsDocumentation in the Doc dirDocumentation in the Doc dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Activity
fedeevol commentedon Apr 19, 2021
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
fedeevol commentedon Apr 19, 2021
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?
encukou commentedon Jun 18, 2025
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
distutilsgone, 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.