python कपड Setup.py में बिल्ड निर्देशिका की सफाई करें




वाशिंग मशीन रिपेयर कैसे करे (4)

यहां एक जवाब है जो मैट के उत्तर की कार्यक्षमता के साथ मार्टिन के उत्तर के प्रोग्राममैटिक दृष्टिकोण को जोड़ता है (एक clean जो सभी संभावित बिल्ड क्षेत्रों का ध्यान रखता है):

from distutils.core import setup
from distutils.command.clean import clean
from distutils.command.install import install

class MyInstall(install):

    # Calls the default run command, then deletes the build area
    # (equivalent to "setup clean --all").
    def run(self):
        install.run(self)
        c = clean(self.distribution)
        c.all = True
        c.finalize_options()
        c.run()

if __name__ == '__main__':

    setup(
        name="myname",
        ...
        cmdclass={'install': MyInstall}
    )

मैं अपने setup.py कैसे बना सकता हूं? बिल्ड निर्देशिका को पूर्व-हटाएं और बाद में हटाएं?


पूर्व हटाए जाने के लिए, बस distutils.dir_util.remove_tree सेटअप से पहले distutils.dir_util.remove_tree से हटा दें।

पोस्ट-डिलीट के लिए, मैं मानता हूं कि आप केवल चयनित कमांड के बाद पोस्ट-डिलीट करना चाहते हैं संबंधित कमांड उप-वर्ग, इसके रन पद्धति को ओवरराइड करें (बेस रन को कॉल करने के बाद निकालें _टीरी को लागू करने के लिए), और नई कमांड को सीएमडीक्लास शब्दकोश की सेटअप में पास करें।


क्या इसका जवाब है? IIRC, आपको build/lib बाहर सामान से छुटकारा पाने के लिए - सभी ध्वज का उपयोग करने की आवश्यकता होगी:

python setup.py clean --all

यह स्थापित करने से पहले बिल्ड निर्देशिका साफ़ करता है

python setup.py clean --all install

लेकिन आपकी आवश्यकताओं के अनुसार: इससे पहले, और बाद में ऐसा होगा

python setup.py clean --all install clean --all




distutils