This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: distutils duplicates package directory for C extensions in 3.1 final
Type: behavior Stage:
Components: Distutils Versions: Python 3.1, Python 3.2, Python 2.7
process
Status: closed Resolution: accepted
Dependencies: Superseder:
Assigned To: tarek Nosy List: scoder, tarek
Priority: normal Keywords:

Created on 2009-06-29 06:20 by scoder, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (3)
msg89813 - (view) Author: Stefan Behnel (scoder) * (Python committer) Date: 2009-06-29 06:20
When compiling a C extension (lxml in this case) in Py3.1, calling the
"build_ext -i" distutils target duplicates the package path when writing
the dynlib. In this case, I get "lxml/lxml/etree.so" instead of
"lxml/etree.so". Obviously, the extension module cannot be found
afterwards, as it's not inside its package anymore. The extension is
named "lxml.etree" when creating the Extension object.

This is a regression from 3.1rc1 AFAICT.
msg89819 - (view) Author: Tarek Ziadé (tarek) * (Python committer) Date: 2009-06-29 07:22
I've spotted the problem, it's a wrong usage of build_py.get_package_dir
in build_ext.get_ext_fullpath,

I'll add a test + a fix today asap,
msg89865 - (view) Author: Tarek Ziadé (tarek) * (Python committer) Date: 2009-06-29 16:48
Fixed in r73688 (trunk), r73689 (py3k), r73692 (3.1.x)

Thanks for the feedback, Stefan.
History
Date User Action Args
2022-04-11 14:56:50adminsetgithub: 50614
2009-06-29 16:48:50tareksetversions: + Python 3.2
2009-06-29 16:48:38tareksetstatus: open -> closed

messages: + msg89865
2009-06-29 10:14:02tareksetresolution: not a bug -> accepted
2009-06-29 10:13:51tareksetmessages: - msg89822
2009-06-29 09:55:31tareksetresolution: not a bug
messages: + msg89822
2009-06-29 07:22:08tareksetpriority: normal

messages: + msg89819
versions: + Python 2.7
2009-06-29 06:20:41scodercreate