Python setup.py - не создавать колесо при запуске setup.py install - PullRequest
0 голосов
/ 07 февраля 2019

Я хочу использовать setup.py и все его функциональные возможности, но я не хочу, чтобы колесо было создано для устанавливаемого проекта.Есть флаг или что-то, что пропускает колесо сборки?

Причина этого в том, что я использую пользовательский InstallCommand, предоставляемый setuptools, для передачи переменных среды в следующий устанавливаемый проект (зависимость) и при создании колеса - средаПеременные не видны, поэтому работает только установка (не сборка колеса).

РЕДАКТИРОВАТЬ:

Поскольку я использую параметры сборки, я получаю предупреждение:

pip / _internal / commands / 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 Ответ

0 голосов
/ 11 февраля 2019

Нашли решение:

Не используйте установку setup.py, лучше создайте исходный дистрибутив setup.py sdist, а затем установите с помощью pip.Вот пример:

python setup.py sdist
python -m pip install dist/* --install-option=--environment='dev'
...