के साथ स्फिंक्स का उपयोग करके मैंने सी में लिखे गए एक सबमिशन सहित एक पायथन मॉड्यूल लिखा है: मॉड्यूल को foo
कहा जाता है और सी भाग foo._bar
है। यह बढ़ाने के लिएएक डिस्ट्यूट-निर्मित सी एक्सटेंशन
src/
foo/__init__.py <- contains the public stuff
foo/_bar/bar.c <- the C extension
doc/ <- Sphinx configuration
conf.py
...
foo/__init__.py
आयात _bar
, और उपयोगी सामग्री foo
मॉड्यूल में सामने आ रहा है: संरचना की तरह लग रहा है। यह ठीक होने पर ठीक काम करता है, लेकिन स्पष्ट रूप से असम्बद्ध रूप में काम नहीं करेगा, क्योंकि _bar
तब तक अस्तित्व में नहीं है जब तक यह बनाया गया न हो।
मैं परियोजना दस्तावेज करने के लिए स्फिंक्स का उपयोग करना चाहता हूं, और foo
मॉड्यूल पर autodoc एक्सटेंशन का उपयोग करना चाहता हूं। इसका मतलब है कि मैं प्रलेखन बनाने से पहले परियोजना बनाने की जरूरत है।
चूंकि मैं distutils के साथ निर्माण करता हूं, निर्मित मॉड्यूल कुछ अलग-अलग नामित डीआईआर build/lib.linux-ARCH-PYVERSION
में समाप्त होता है - जिसका अर्थ है कि मैं केवल स्पिंक्स 'conf.py
में निर्देशिका को हार्ड-कोड नहीं कर सकता।
तो मैं निर्मित मॉड्यूल पर स्फिंक्स बिल्डर चलाने के लिए अपने distutils setup.py
स्क्रिप्ट को कैसे कॉन्फ़िगर कर सकता हूं?
setup(cmdclass = {
'fake': fake,
'build_ext_fake' : build_ext_fake
},
package_dir = {'': 'src'},
packages = ['foo'],
name = 'foo',
version = '0.1',
description = desc,
ext_modules = [module_real])
यह एक बहुत अच्छा दृष्टिकोण है - मैं इसे सही रूप से 'conf.py' (मुझे लगता है) में डाल सकता है। मैं कल कोशिश करूँगा। – detly
आह ... मुझे 'build_lib' का उपयोग करने की आवश्यकता नहीं है, 'build_temp' नहीं, और मेरे क्रॉस संकलन के साथ गड़बड़ है, लेकिन ऐसा लगता है कि (और विस्तार भाग पर भी, एक अतिरिक्त बोनस के रूप में!) – detly
कूल, अगर आप चाहते हैं कि मैं अधिक विस्तार जोड़ सकता हूं (या अपने सटीक चरणों के साथ एक उत्तर जोड़ें ताकि अन्य लाभ उठा सकें)। – TryPyPy