![](/img/trans.png)
[英]How to run 'python setup.py install' from within Python?
[英]How would I run a script file as part of the python setup.py install?
題
我知道如何使用setup.py
和setuptools來注冊腳本。 我將如何運行另一個腳本文件(比如一個make
文件)作為python setup.py install
。
背景
我想我會使用類似的東西:
os.system('make maketarget') #from somewhere in the package
但是setuptools.setup
收到一個字典,所以我不能在setup()
/中添加這一行,我需要在setup.py install
基本軟件包之后運行該腳本。
我知道我可以向setup.py
添加命令,但我想在安裝步驟中調用此腳本。
我也可以默認只放置一個:
if sys.argv[-1] == 'install':
os.system('do something in the shell')
並且只是在setup()之后放置這個塊,但不知怎的,這看起來不是非常pytonic(也容易出錯,我需要找到這個軟件包的安裝位置等)
您可以從setuptools繼承現有的install命令,並使用所需的功能對其進行擴展。 然后,您可以在setup函數中將其注冊為install命令:
from setuptools.command.install import install
class MyInstall(install):
def run(self):
install.run(self)
print("\n\n\n\nI did it!!!!\n\n\n\n")
# in the setup function:
cmdclass={'install': MyInstall}
而不是print語句只需調用您的腳本。
請注意,有很多方法可以打包python軟件(雞蛋等)。 如果您只在安裝步驟中調用它,則不會為這些方法調用您的腳本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.