Python Setup.py: установить переменную среды перед запуском install_requires - PullRequest
0 голосов
/ 31 января 2019

В последнее время для изменения Apache Airflow требуется установить переменную среды SLUGIFY_USES_TEXT_UNIDECODE = yes, прежде чем ее можно будет установить: https://airflow.apache.org/installation.html

В сценарии setup.py моего пользовательского модуля я включаю Airflow всписок install_requires.Поэтому, когда я пытаюсь установить свой пользовательский модуль, он также не может найти эту переменную среды для установки.

Поскольку у меня много сред для установки, я хочу автоматически установить эту переменную среды вмой модуль setup.py, поэтому он всегда присутствует.Однако, похоже, что это не сработает, если я просто помещу эту строку в начало моего setup.py или внутри метода run () пользовательского подкласса установки (с помощью параметра cmdclass setup.py).

os.environ['SLUGIFY_USES_TEXT_UNIDECODE'] = 'yes'

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

Любая помощь очень ценится.

Ответы [ 2 ]

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

Это должно работать "из коробки", если вы запустите export SLUGIFY_USES_TEXT_UNIDECODE=yes до pip install YOUR_CUSTOM_PACKAGE.

Альтернативный вариант - использовать в вашем setup.py следующее:

import os
os.system("export SLUGIFY_USES_TEXT_UNIDECODE=yes")
0 голосов
/ 01 февраля 2019

Как установлен ваш пользовательский модуль?Используя колеса?Тогда вам не повезло, поскольку setuptools запускаете setup.py во время компиляции / пакета, но не во время установки.Для колес единственное решение - установить переменную окружения перед установкой:

SLUGIFY_USES_TEXT_UNIDECODE=yes pip install …

Трюк с setup.py должен работать, если вы устанавливаете из sdist (исходный дистрибутив).

...