Обновление
См. Также более подробный ответ здесь .
Вы можете получить имя, запросив команду bdist_wheel
, поскольку вы даже не нужно что-то построить или написать скрипт setup.py
(но вам нужны метаданные, которые вы передаете в функцию setup
). Пример:
from distutils.core import Extension
from setuptools.dist import Distribution
fuzzlib = Extension('fuzzlib', ['fuzz.pyx']) # the files don't need to exist
dist = Distribution(attrs={'name': 'so', 'version': '0.1.2', 'ext_modules': [fuzzlib]})
bdist_wheel_cmd = dist.get_command_obj('bdist_wheel')
bdist_wheel_cmd.ensure_finalized()
distname = bdist_wheel_cmd.wheel_dist_name
tag = '-'.join(bdist_wheel_cmd.get_tag())
wheel_name = f'{distname}-{tag}.whl'
print(wheel_name)
напечатает вам нужное имя. Обратите внимание, что attrs
, переданный в Distribution
, должен содержать те же метаданные, которые вы передаете в функцию setup
, иначе вы, вероятно, получите неправильный тег. Чтобы повторно использовать метаданные, в сценарии setup.py
это можно объединить, например,
setup_kwargs = {'name': 'so', 'version': '0.1.2', ...}
dist = Distribution(attrs=setup_kwargs)
...
setup(**setup_kwargs)