-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Open
Labels
Needs TriageIssues that need to be evaluated for severity and status.Issues that need to be evaluated for severity and status.bug
Description
setuptools version
80.9.0
Python version
Python 3.11.13
OS
RHEL 8
Additional environment information
Only happens when both pyproject.toml and setup.py are present.
Description
python setup.py build copies the extension sources i.e. the .cpp files to the lib directory along with the generated .so files.
Expected behavior
python setup.py build should only copy the .so files for extensions, not the extension sources.
How to Reproduce
Run python setup.py build in a project containing an extension, the extension sources will be copied to the lib directory.
pyproject.toml contains:
[project]
name="foo"
version="1.0"setup.py contains:
from setuptools import setup, Extension
setup(
ext_modules=[
Extension("foo.extension", ["src/foo/extension/bar.cpp"]),
],
)project structure:
.
├── pyproject.toml
├── setup.py
└── src
└── foo
└── extension
└── bar.cpp
3 directories, 3 filesAfter running build command:
.
├── build
│ ├── lib.linux-x86_64-cpython-311
│ │ └── foo
│ │ ├── extension
│ │ │ └── bar.cpp
│ │ └── extension.cpython-311-x86_64-linux-gnu.so
│ └── temp.linux-x86_64-cpython-311
│ └── src
│ └── foo
│ └── extension
│ └── bar.o
├── pyproject.toml
├── setup.py
└── src
├── foo
│ └── extension
│ └── bar.cpp
└── foo.egg-info
├── PKG-INFO
├── SOURCES.txt
├── dependency_links.txt
└── top_level.txt
12 directories, 10 filesOutput
Output of python setup.py build
Could not find an up-to-date installation of `packaging`. License expressions might not be validated. To enforce validation, please install `packaging>=24.2`.
Note: NumExpr detected 10 cores but "NUMEXPR_MAX_THREADS" not set, so enforcing safe limit of 8.
NumExpr defaulting to 8 threads.
running build
running build_py
running egg_info
creating src/foo.egg-info
writing src/foo.egg-info/PKG-INFO
writing dependency_links to src/foo.egg-info/dependency_links.txt
writing top-level names to src/foo.egg-info/top_level.txt
/usr/local/python/python-3.11/std/lib64/python3.11/site-packages/pbr/git.py:28: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
import pkg_resources
writing manifest file 'src/foo.egg-info/SOURCES.txt'
reading manifest file 'src/foo.egg-info/SOURCES.txt'
writing manifest file 'src/foo.egg-info/SOURCES.txt'
creating build/lib.linux-x86_64-cpython-311/foo/extension
copying src/foo/extension/bar.cpp -> build/lib.linux-x86_64-cpython-311/foo/extension
running build_ext
INFO: Disabling color, you really want to install colorlog.
Disabling color, you really want to install colorlog.
building 'foo.extension' extension
creating build/temp.linux-x86_64-cpython-311/src/foo/extension
/opt/rh/gcc-toolset-10/root/usr/bin/g++ -pthread -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/codemill/rajputa/dessetuptools/venv/include -I/opt/python/python-3.11/include/python3.11 -c src/foo/extension/bar.cpp -o build/temp.linux-x86_64-cpython-311/src/foo/extension/bar.o
/opt/rh/gcc-toolset-10/root/usr/bin/g++ -pthread -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -shared build/temp.linux-x86_64-cpython-311/src/foo/extension/bar.o -L/opt/python/python-3.11/lib64 -o build/lib.linux-x86_64-cpython-311/foo/extension.cpython-311-x86_64-linux-gnu.so
Metadata
Metadata
Assignees
Labels
Needs TriageIssues that need to be evaluated for severity and status.Issues that need to be evaluated for severity and status.bug