mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
fixed the 'package' option of build_ext
This commit is contained in:
parent
f03c42f0ab
commit
7d7127dd84
3 changed files with 38 additions and 11 deletions
|
@ -642,19 +642,21 @@ class build_ext (Command):
|
|||
The file is located in `build_lib` or directly in the package
|
||||
(inplace option).
|
||||
"""
|
||||
if self.inplace:
|
||||
fullname = self.get_ext_fullname(ext_name)
|
||||
modpath = fullname.split('.')
|
||||
package = '.'.join(modpath[0:-1])
|
||||
base = modpath[-1]
|
||||
build_py = self.get_finalized_command('build_py')
|
||||
package_dir = os.path.abspath(build_py.get_package_dir(package))
|
||||
filename = self.get_ext_filename(ext_name)
|
||||
return os.path.join(package_dir, filename)
|
||||
else:
|
||||
filename = self.get_ext_filename(ext_name)
|
||||
fullname = self.get_ext_fullname(ext_name)
|
||||
filename = self.get_ext_filename(fullname)
|
||||
if not self.inplace:
|
||||
# no further work needed
|
||||
return os.path.join(self.build_lib, filename)
|
||||
|
||||
# the inplace option requires to find the package directory
|
||||
# using the build_py command
|
||||
modpath = fullname.split('.')
|
||||
package = '.'.join(modpath[0:-1])
|
||||
base = modpath[-1]
|
||||
build_py = self.get_finalized_command('build_py')
|
||||
package_dir = os.path.abspath(build_py.get_package_dir(package))
|
||||
return os.path.join(package_dir, filename)
|
||||
|
||||
def get_ext_fullname(self, ext_name):
|
||||
"""Returns the fullname of a given extension name.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue