我希望我的setup.py做一些自定義操作,除了剛剛安裝Python包(如安裝一個腳本init.d中,創建目錄和文件等),我知道我可以自定義的distutils/setuptools的班做我自己動作。我遇到的問題是,當我cd到軟件包目錄並執行「python setup.py install」時,一切正常,但當我執行「easy_install mypackage.tar.gz」時,我的自定義類似乎不會被執行。這是我的setup.py文件(創建在同一目錄空myfoobar.py文件來測試):如何使easy_install在setup.py中執行自定義命令?
import setuptools
from setuptools.command import install as _install
class install(_install.install):
def initialize_options(self):
_install.install.initialize_options(self)
def finalize_options(self):
_install.install.finalize_options(self)
def run(self):
# Why is this never executed when tarball installed with easy_install?
# It does work with: python setup.py install
import pdb;pdb.set_trace()
_install.install.run(self)
setuptools.setup(
name = 'myfoobar',
version = '0.1',
platforms = ['any'],
description = 'Test package',
author = 'Someone',
py_modules = ['myfoobar'],
cmdclass = {'install': install},
)
同樣的事情發生,即使我輸入「設置」,並從distutils的「安裝」。任何想法我可以讓easy_install執行我的自定義類?
爲了澄清,我不希望使用任何額外的費用,如擴建或攤鋪機。
不是我希望的答案,但我想最好的,可以給,所以我把它作爲答案。謝謝! – 2009-10-26 17:41:07