python setuptools使用setup.py中的动态配置进行安装

时间:2017-06-16 08:22:58

标签: python pip setuptools

是否可以在setup.py中使用动态配置?

我有一个python应用程序,它是一个脚本集合,用于向后端api发出请求。我想动态定制安装的脚本,可能是通过将标志传递给pip install命令。

示例setup.py

from setuptools import setup, find_packages
setup(
  name='my-app',
  version='0.0.1',
  packages=find_packages(),
  scripts=['bin/do_stuff',
           'bin/do_other_stuff'
  ],
)

我想根据安装标志动态修改“脚本”的内容,添加其他路径。

这可能吗?

1 个答案:

答案 0 :(得分:1)

pip允许通过--install-option将非标准参数传递给setup.py,但您必须在调用setup()之前从sys.argv中删除该参数。因此,您最好通过环境变量传递其他信息:

MY_EXTRA_INFO=add_script pip install

获取setup.py中的var:

if 'MY_EXTRA_INFO' in os.environ:
    add_scripts = ['bin/add_script']
else:
    add_scripts = []

setup(
  scripts=['bin/do_stuff',
           'bin/do_other_stuff'
  ] + add_scripts,
)