के साथ स्थापित करना मेरे पास एक boost.python प्रोजेक्ट है जिसे मैं cmake का उपयोग करके संकलित करता हूं और करता हूं। यह एक अजगर मॉड्यूल का हिस्सा है, और मैं distutils का उपयोग कर उस मॉड्यूल को स्थापित करने में सक्षम होना चाहता हूँ। मैंने here निर्देशों का पालन किया है जो एक CMakeLists.txt फ़ाइल बनाने के लिए है जो पहले साझा लाइब्रेरी को संकलित करता है, फिर setup.py सेट करता है ताकि पायथन मॉड्यूल स्थापित करने के साथ इंस्टॉल किया जा सके। हालांकि, जबकि सभी पायथन फ़ाइलों को distutils द्वारा पहचाना जाता है और निर्माण निर्देशिका में स्थानांतरित किया जाता है, साझा पुस्तकालय नहीं है, और मैं वास्तव में क्यों नहीं जानता क्यों।पायथन/सी ++ - सेमेक के साथ साझा लाइब्रेरी संकलित करना और distutils
मेरे परियोजना निर्देशिका संरचना:
- परियोजना
- निर्माण (अजगर distutils निर्देशिका)
- डॉक (मॉड्यूल प्रलेखन)
- मॉड्यूल (मुख्य मॉड्यूल निर्देशिका)
- कोर (dir बूस्ट प्रोजेक्ट/लाइब्रेरी
- CMakeLists.txt - साझा लाइब्रेरी
- other_py_files (शुद्ध अजगर फ़ाइलों के कई निर्देशिकाओं)
- कोर (dir बूस्ट प्रोजेक्ट/लाइब्रेरी
- CMakeLists.txt
- setup.py.in
- setup.py बनाता है (cmake द्वारा उत्पन्न)
मेरे setup.py.in फ़ाइल:
+०१२३५१६४१०६१from distutils.core import setup
setup(
name='module',
version='${PACKAGE_VERSION}',
packages=['module', 'module.core', 'module.other_py_files'],
package_dir={'': '${CMAKE_CURRENT_SOURCE_DIR}'},
)
मेरे CMakeLists.txt:
cmake_minimum_required (VERSION 2.6)
project (module)
add_subdirectory(module/core)
find_program(PYTHON "python")
if (PYTHON)
set(SETUP_PY_IN "${CMAKE_CURRENT_SOURCE_DIR}/setup.py.in")
set(SETUP_PY "${CMAKE_CURRENT_BINARY_DIR}/setup.py")
set(DEPS "${CMAKE_CURRENT_SOURCE_DIR}/pyQCD/__init__.py")
set(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/build/timestamp")
configure_file(${SETUP_PY_IN} ${SETUP_PY})
add_custom_command(OUTPUT ${OUTPUT}
COMMAND ${PYTHON} ${SETUP_PY} build
COMMAND ${CMAKE_COMMAND} -E touch ${OUTPUT}
DEPENDS ${DEPS})
add_custom_target(target ALL DEPENDS ${OUTPUT})
install(CODE "execute_process(COMMAND ${PYTHON} ${SETUP_PY} install)")
endif()
मैंने सोचा था कि distutils साझा लाइब्रेरी एक्सटेंशन अपने आप को जोड़ने के लिए निर्देशिका बनाने चाहिए था, या मुझे लगता है कि गलत कहीं मिल गया है? (साझा लाइब्रेरी सी एपीआई (बूस्ट.pyथॉन) पर निर्मित एक आयातनीय पायथन मॉड्यूल है, इसलिए इसे सही काम करना चाहिए?)
यहां सी/पायथन मॉड्यूल का एक लिंक है जो सीएमके का उपयोग करता है - https://gitlab.com/ideasman42/blender-mathutils - distutils का उपयोग सिर्फ पायथन उपसर्ग निकालने के लिए किया जाता है। * (हालांकि एक distutils setup.py भी है, जिसका उपयोग सीएमके निर्माण के लिए नहीं किया जाता है) * – ideasman42