python setuptools在setup.py中使用动态配置安装

python setuptools在setup.py中使用动态配置安装,python,pip,setuptools,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',

是否可以在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'
  ],
)
我想根据安装标志动态修改“脚本”的内容,以添加其他路径


这可能吗?

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

MY_EXTRA_INFO=add_script pip install
在setup.py中获取变量:

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,
)

太好了,谢谢-我怎样才能把条件传递给pip Install?我扩展了答案。