Python Setup.py:在运行 install_requires 之前设置环境变量

Joe*_*e J 5 python pip environment-variables setup.py airflow

最近,对 Apache Airflow 的更改需要设置环境变量 SLUGIFY_USES_TEXT_UNIDECODE=yes 才能安装:https ://airflow.apache.org/installation.html

在我的自定义模块的 setup.py 脚本中,我将 Airflow 包含在install_requires列表中。因此,当我尝试安装自定义模块时,它也无法查找要设置的环境变量。

由于我有很多环境要安装它,我想在我的 setup.py 模块中自动设置该环境变量,以便它始终存在。但是,如果我只是将此行放在 setup.py 的顶部或 install 的自定义子类的 run() 方法内部(通过 cmdclass setup.py 选项),它似乎不起作用。

os.environ['SLUGIFY_USES_TEXT_UNIDECODE'] = 'yes'
Run Code Online (Sandbox Code Playgroud)

关于如何在install_requires安装任何依赖项之前在 setup.py 中设置环境变量的任何想法?

任何帮助深表感谢。

phd*_*phd 1

您的自定义模块是如何安装的?使用轮子?那么你就不走运了,因为它是在编译/打包时setuptools运行setup.py,而不是在安装时运行。对于wheels,唯一的解决方案是在安装之前设置环境变量:

\n\n
SLUGIFY_USES_TEXT_UNIDECODE=yes pip install \xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果你从 sdist (源代码发行版)安装,你的欺骗setup.py应该可以工作。

\n