Не существует чистого способа сделать это, о котором я знаю. Вы можете рискнуть и сыграть пакостный .
Вдохновленный этим комментарием , вы можете попробовать сценарий setup.py
, который выглядит следующим образом (только частично протестированный):
#!/usr/bin/env python3
import setuptools
setuptools.setup(
name='LookMaNoWheels',
version='1.2.3',
cmdclass={'bdist_wheel': None},
)
Идея состоит в том, чтобы вызвать неудачу при попытке построить колесо. Когда это происходит, такие инструменты, как pip имеют тенденцию восстанавливаться после этого, устанавливая непосредственно из любого доступного дистрибутива (в вашем случае sdist ).
Обновление
Примерно так может помочь предоставить более информативное сообщение об ошибке:
#!/usr/bin/env python3
import distutils.errors
import setuptools
bdist_wheel = None
try:
import wheel.bdist_wheel
class bdist_wheel(wheel.bdist_wheel.bdist_wheel):
def run(self, *args, **kwargs):
raise distutils.errors.DistutilsClassError("No!")
except ModuleNotFoundError:
pass
setuptools.setup(
name='LookMaNoWheels',
version='1.2.3',
cmdclass={'bdist_wheel': bdist_wheel},
)