2017-06-16 75 views
0

是否可以在setup.py中使用動態配置?python 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

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

很好,謝謝 - 我怎麼能傳遞條件'PIP install' –

+0

我擴展了答案。 – phd

相關問題