سؤال

لديّ مجموعة من ملفات C التي يتم إنشاؤها بواسطة مجموعة من برامج Python التي تحتوي على عدد من وحدات Python المشتركة وأحتاج إلى حساب ذلك في نظام Make الخاص بي.

من السهل بدرجة كافية تعداد برنامج Python الذي يجب تشغيله لإنشاء كل ملف C. ما لا يمكنني العثور عليه حلًا جيدًا هو تحديد ملفات Python الأخرى التي تعتمد عليها تلك البرامج. أحتاج إلى هذا الأمر ، لذا ستعرف ما الذي يحتاج إلى تجديده إذا تغير أحد ملفات Python المشتركة.

هل هناك نظام جيد لإنتاج قواعد التبعية للأناقة من مجموعة من مصادر بيثون؟

هل كانت مفيدة؟

المحلول

نصائح أخرى

ال import البيانات هي إلى حد كبير جميع التبعيات هناك. هناك نموذجان ذوو الصلة لبيانات الاستيراد:

import x, y, z
from x import a, b, c

ستحتاج أيضًا إلى PYTHONPATH و sites المعلومات المستخدمة للبناء sys.path. هذا يوضح المواقع المادية للوحدات النمطية والحزم.

هذا نوع من المؤلم للمعالجة ، حيث يتعين عليك القيام بالإغلاق التعريفي لجميع الواردات في جميع الوحدات النمطية التي تستوردها.

كنهج بديل ، يمكنك استخدام -v خيار للحصول على القائمة الكاملة للواردات والملفات الفعلية. ينتج عن هذا السجل الذي يمكنك تعديله إلى قائمة مسطحة من التبعيات.

على سبيل المثال ، عندما أفعل

>>> import math

أرى هذا في السجل

dlopen("/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/math.so", 2);
import math # dynamically loaded from /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/math.so
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top