Python setup.py - не создавать колесо при запуске setup.py install
Я хочу использовать setup.py и все его функциональные возможности, но я не хочу, чтобы колесо было создано для устанавливаемого проекта. Есть флаг или что-то, просто пропускающее строительное колесо?
Причиной этого является то, что я использую пользовательский InstallCommand, предоставляемый setuptools, для передачи переменных среды в следующий устанавливаемый проект (зависимость), а при построении колеса - переменные среды не видны, поэтому работает только установка (не сборка колеса).
РЕДАКТИРОВАТЬ:
Поскольку я использую параметры сборки, я получаю предупреждение:
pip / _internal / command /install.py:211: UserWarning: Отключение любого использования колес из-за использования --build-options / --global-options / --install-options.
И так как я использую этот пользовательский InstallCommand:
class InstallCommand(install):
user_options = install.user_options + [
('environment=', None, 'Specify a production or development environment.'),
]
def initialize_options(self):
install.initialize_options(self)
self.environment = None
def finalize_options(self):
install.finalize_options(self)
global ENVIRONMENT
try:
# Check if environment is set
is_dev()
except AssertionError:
# If not - assert that this class has a set environment
assert self.environment in ['dev', 'prod'], 'Bad environment propagated from parent project.'
ENVIRONMENT = self.environment
def run(self):
install.run(self)
Я получаю эту ошибку:
installing to build/bdist.linux-x86_64/wheel
running install
Traceback (most recent call last):
File "/tmp/pip-req-build-xnp6kolm/setup_helper.py", line 26, in finalize_options
is_dev()
File "/tmp/pip-req-build-xnp6kolm/setup_helper.py", line 126, in is_dev
assert (prod or dev) is True, 'Environment should be set to dev or prod'
AssertionError: Environment should be set to dev or prod
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/tmp/pip-req-build-xnp6kolm/setup_helper.py", line 29, in finalize_options
assert self.environment in ['dev', 'prod'], 'Bad environment propagated from parent project.'
AssertionError: Bad environment propagated from parent project.
----------------------------------------
Failed building wheel for ivs-repository-manager - HAVE A NOTICE AT THIS LINE !!! I HAVE RUN SETUP.PY INSTALL, NOT BDIST
Running setup.py clean for ivs-repository-manager
Failed to build ivs-repository-manager
НО! После этого исключения isntallation все еще успешно, и я вижу установленный пакет. Просто я получаю эти ошибки, когда setuptools пытается собрать колесо.
Так что, похоже, что при построении среды среды распространения колеса --install-options не видны.
1 ответ
Нашел решение:
Не используйте setup.py install, лучше создайте исходный дистрибутив setup.py sdist, а затем установите с помощью pip. Это пример:
python setup.py sdist
python -m pip install dist/* --install-option=--environment='dev'