الانتقال إلى المحتوى الرئيسي

كيفية توصيل ج وبيثون: دليل مفصل

يمكن أن تكون مشاركة لغات برمجة سي وبايثون مفيدة جدا في تطوير البرمجيات. توفر بايثون بناء جملة بسيطا ومريحا لكتابة برامج عالية المستوى ، بينما توفر سي أداء عاليا وقدرات منخفضة المستوى.

في هذه المقالة ، سنلقي نظرة على دليل مفصل حول الاتصال ج و بيثون. وسوف ننظر في طرق مختلفة للتفاعل بين هذه اللغات ، بما في ذلك استدعاء وظائف ج من بيثون ، وذلك باستخدام كتيبس لربط ج و بيثون ، وخلق وحدات في ج لاستخدامها في بيثون.

بغض النظر عن الطريقة التي تختارها ، فإن الجمع بين ج و بيثون يسمح لك بمشاركة فوائد كلتا اللغتين. سوف تكون قادرا على استخدام مكتبات ج قوية ، فضلا عن توفير الوقت وتبسيط التنمية مع بناء جملة بيثون بسيطة وبديهية.

  1. تركيب المكونات الضرورية
  2. تثبيت بايثون
  3. ويندوز
  4. ماك
  5. لينكس
  6. تثبيت مترجم ج
  7. ويندوز
  8. ماك
  9. لينكس
  10. تركيب مكتبة للاتصال ج وبيثون
  11. إنشاء مثال بسيط
  12. كتابة كود ج
  13. كتابة كود بايثون
  14. التعليقات
  15. المتغيرات
  16. العمليات
  17. المشغلين الشرطيين
  18. دورات
  19. المهام
  20. المكتبات
  21. خاتمة
  22. تجميع وإطلاق
  23. الخطوة 1: كتابة التعليمات البرمجية في ج
  24. الخطوة 2: ترجمة رمز ج
  25. الخطوة 3: استخدام كود بايثون
  26. سؤال وجواب
  27. كيف يمكن استخدام ج وبايثون معا?
  28. كيف يمكنني كتابة المجمع في ج لوظيفة الثعبان?
  29. ما هو امتداد بايثون وكيف أكتبه في ج?
  30. كيف يمكنني استخدام كتيبس لاستدعاء وظائف في ج في بيثون?
  31. ما هي مزايا وعيوب استخدام ج وبايثون معا?
  32. ما هي البدائل للجمع بين ج وبيثون?

تركيب المكونات الضرورية

للعمل مع الجمع بين ج و بيثون ، سوف تحتاج إلى عدة مكونات:

  • مترجم ج/ج compiler (على سبيل المثال ، دول مجلس التعاون الخليجي أو رنة) من شأنها أن تسمح لك لتجميع رمز ج في رمز الجهاز;
  • بايثون (الإصدار 3.س) ، مترجم لغة برمجة بايثون;
  • مكتبة كتيبس ، وهي جزء من مكتبة بايثون القياسية ، للتفاعل مع المكتبات بلغة سي;
  • مكتبات ج الإضافية التي تريد استخدامها في المشروع الخاص بك.

من المهم ملاحظة أن ملف ج/ج compiler يجب أن يكون المترجم متاحا في متغير نظام المسار بحيث يكون مناسبا لك لاستخدامه من سطر الأوامر.

قم بتثبيت بايثون باتباع التعليمات الموجودة على الموقع الرسمي https://www.python.org/downloads /. يرجى ملاحظة أنه من المستحسن استخدام الإصدار 3.س في الوقت الراهن ، كما هو أحدث نسخة مستقرة.

ليست هناك حاجة لتثبيت مكتبة كتيبس ، كما يتم تضمينها في مكتبة بايثون القياسية.

إذا كنت تخطط لاستخدام مكتبات إضافية في ج ، قم بتثبيتها أولا. تأتي المكتبات عادة مع إرشادات التثبيت التي تحتاج إلى اتباعها.

بعد تثبيت جميع المكونات الضرورية ، ستكون جاهزا لبدء الجمع بين سي وبايثون والبدء في إنشاء التطبيق أو المكتبة الخاصة بك.

تثبيت بايثون

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

اعتمادا على نظام التشغيل الخاص بك ، هناك عدة طرق لتثبيت بايثون. الإرشادات أدناه مخصصة للعديد من أنظمة التشغيل الشائعة.

ويندوز

  1. انتقل إلى موقع بايثون الرسمي على https://www.python.org/downloads /.
  2. تحميل أحدث برنامج التثبيت بيثون ويندوز وفقا لنظام التشغيل الخاص بك (32 بت أو 64 بت).
  3. قم بتشغيل برنامج التثبيت واتبع التعليمات التي تظهر على الشاشة.
  4. تأكد من تحديد خيار" إضافة بايثون إلى المسار".
  5. انقر فوق" التثبيت الآن " وانتظر حتى يكتمل التثبيت.

ماك

  1. انتقل إلى موقع بايثون الرسمي على https://www.python.org/downloads /.
  2. تحميل أحدث برنامج التثبيت بيثون لماك.
  3. قم بتشغيل برنامج التثبيت واتبع التعليمات التي تظهر على الشاشة.
  4. تأكد من تحديد خيار" إضافة بايثون إلى المسار".
  5. انقر فوق" التثبيت الآن " وانتظر حتى يكتمل التثبيت.

لينكس

عادة ما يتم تثبيت بايثون مسبقا في العديد من توزيعات لينكس. ومع ذلك ، إذا لم يكن لديك ، فيمكنك تثبيته من المستودع الرسمي لنظام التشغيل الخاص بك باستخدام مدير الحزم.

على أوبونتو والتوزيعات الأخرى المستندة إلى دبيان ، افتح محطة طرفية وقم بتشغيل الأمر التالي:

سودو الرابطة بين الحصول على تثبيت بيثون 3

في فيدورا والتوزيعات الأخرى القائمة على ريد هات ، افتح محطة وقم بتشغيل الأمر التالي:

سودو يم تثبيت بيثون 3

بعد اكتمال التثبيت ، سوف تكون قادرا على استخدام بيثون على النظام الخاص بك.

. إذا تم تثبيت بيثون بشكل صحيح ، فإنه سيتم عرض إصدار بيثون المثبتة على الجهاز الخاص بك.

تثبيت مترجم ج

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

ويندوز

  • تحميل حزمة التثبيت مينغو ويندوز من الموقع الرسمي: www.mingw.org .
  • قم بتشغيل المثبت واتبع التعليمات.
  • أثناء عملية التثبيت ، حدد المكونات المراد تثبيتها ، بما في ذلك مترجم سي (دول مجلس التعاون الخليجي).
  • بعد اكتمال التثبيت ، أضف المسار إلى المترجم المثبت إلى متغير بيئة المسار.

ماك

  • أسهل طريقة لتثبيت مترجم ج على ماك هو تثبيت حزمة أدوات سطر الأوامر كسكودي.
  • .
  • بعد تشغيل الأمر ، اتبع الإرشادات الموجودة في المثبت.

لينكس

  • في معظم توزيعات لينكس ، يتم تثبيت مترجم سي بالفعل بشكل افتراضي.
  • يمكنك تثبيت مترجم دول مجلس التعاون الخليجي باستخدام مدير حزم التوزيع الخاص بك.
  • .
  • .

بعد تثبيت مترجم ج ، سوف تكون على استعداد لإنشاء وتجميع البرامج في اللغة ج. لتجميع البرنامج ، ببساطة تشغيل مترجم ، ويمر عليه اسم الملف المصدر.

تركيب مكتبة للاتصال ج وبيثون

من أجل إنشاء رابط بين لغة سي ولغة بايثون ، تحتاج إلى تثبيت المكتبة المناسبة. هناك العديد من المكتبات الشائعة التي توفر هذه الوظيفة:

  • كتيبس: هذه هي مكتبة بيثون القياسية التي تسمح لك لاستدعاء وظائف من المكتبات الديناميكية (مكتبة مشتركة) في اللغة ج. هو بالفعل مثبتة مسبقا في معظم توزيعات بايثون.
  • .
  • سويغ: بل هو أداة لتوليد مغلفة تلقائيا للغات البرمجة مثل بيثون ، ج++ ، جافا وغيرها. ويوفر وسيلة مريحة لاستدعاء وظائف ج من بيثون. يمكن تثبيت حزمة سويغ باستخدام مدير الحزم من نظام التشغيل الخاص بك.

يعتمد اختيار مكتبة معينة على أهداف ومتطلبات المشروع. إذا كنت بحاجة إلى استدعاء وظائف فردية في ج ، وهو ما يكفي لاستخدام مكتبة كتيبس القياسية. إذا كنت بحاجة إلى مزيد من التفاعل المتقدم مع رمز ج ، ثم يمكنك اختيار كفي أو سويغ.

بعد تثبيت المكتبة المحددة ، يمكنك البدء في إنشاء رابط بين سي وبيثون في مشروعك.

إنشاء مثال بسيط

قبل أن نبدأ مع ربط ج و بيثون ، دعونا خلق مثال بسيط لفهم المبادئ الأساسية.

لنفترض أن لدينا دالة في ج التي تحسب مجموع رقمين:

# تشمل 

مجموع الباحث (الباحث أ ، الباحث ب) {

العودة أ + ب;

}

كثافة العمليات الرئيسية () {

كثافة العمليات النتيجة = مجموع (5 ، 7);

برينتف ("المجموع: ٪ د

"،النتيجة);

العودة 0;

}

الآن نريد استدعاء هذه الوظيفة من بايثون. للقيام بذلك ، سوف نستخدم وحدة كتيبس.

هنا هو مثال بسيط من التعليمات البرمجية بيثون الذي يدعو مجموع () وظيفة من ج:

استيراد أنواع

# تحميل مكتبة ج

ليبك = كوتيبس. سدل ('./example.so ') # المسار إلى ملف ج المترجمة

# تحديد نوع قيمة الإرجاع والحجج من وظيفة

ليبك.مجموع.أرجتيبس = (كتيبس.(سي-آينت) ، (سي-تيبس).)

ليبك.مجموع.ريستيب = كتيبس.سي _ينت

# استدعاء مجموع () وظيفة من ج

النتيجة = ليبك.مجموع (5 ، 7)

طباعة ("المجموع:" ، النتيجة)

في هذا المثال ، نقوم بتحميل مكتبة ج المترجمة باستخدام فئة سدل من وحدة كتيبس. ثم نحدد نوع قيمة الإرجاع ووسيطات دالة المجموع () باستخدام سمات أرجتيبس وريستيب. وأخيرا ، فإننا ندعو مجموع () وظيفة من ج وإخراج النتيجة إلى وحدة التحكم.

هذا هو مثال بسيط جدا ، لكنه يوضح كيف يمكن استخدام كتيبس لربط ج و بيثون. عند العمل مع وظائف أكثر تعقيدا ، قد تحتاج إلى إعلانات وإعدادات إضافية ، لكن المبدأ الأساسي يظل كما هو.

كتابة كود ج

لكتابة رمز ج لاستخدامها في بيثون ، تحتاج أولا إلى إنشاء ملف مع .(ج) التمديد. في هذا الملف ، يمكنك استخدام وظائف لغة سي القياسية والوظائف الإضافية التي توفرها واجهة برمجة تطبيقات بايثون.

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

مثال على رمز ج بسيط:

# تشمل

// Функция, которая будет вызываться из Python

static PyObject* hello_world(PyObject* self, PyObject* args) {

printf("Привет, мир!

");

Py_RETURN_NONE;

}

// Определение функций модуля

static PyMethodDef module_methods[] = {

{"hello_world", hello_world, METH_NOARGS, "Вывести приветствие."},

{NULL, NULL, 0, NULL}

};

// Определение информации о модуле

static struct PyModuleDef module_definition = {

PyModuleDef_HEAD_INIT,

"example", // имя модуля

"الوحدة النمطية التي تقدم أمثلة للوظائف في اللغة ج" ، / / وثائق الوحدة النمطية

-1,

الوحدة_الأساليب

};

// تهيئة الوحدة

بيمودينيت_فونك بينيت_على سبيل المثال (باطل) {

العودة بيمودولي_إنشاء (&وحدة_تعريف);

}

في المثال أعلاه ، يتم تعريف وظيفة هيلوورلد ، والتي سيتم استدعاؤها من بيثون. تعرض الوظيفة ببساطة الرسالة " مرحبا بالعالم!"على الشاشة. ثم يتم تعريف طرق الوحدة النمطية في مصفوفة طرق الوحدة النمطية. يحتوي كل عنصر من عناصر المصفوفة على اسم الوظيفة ، ومؤشر للوظيفة ، وأعلام تمرير المعلمة ، والوثائق. ثم يتم تعريف بنية تعريف الوحدة النمطية ، والتي تحتوي على معلومات حول الوحدة النمطية ، مثل اسم الوحدة النمطية ووثائقها. وأخيرا ، فإن وظيفة بينيت _ مثال تهيئة وحدة وإرجاع مؤشر إلى كائن وحدة نمطية.

يتم تجميع شفرة المصدر في وحدة قابلة للتنفيذ باستخدام مترجم ج. على سبيل المثال ، يمكنك تجميع المثال.ج ملف في ملف example.so مع الأمر التالي:

  1. دول مجلس التعاون الخليجي-أنا / البيرة / تشمل / بيثون3. 6-س example.so - المشتركة-فبيك مثال.c

هنا / البيرة / تشمل / بيثون3.6 هو المسار إلى ملفات رأس واجهة برمجة تطبيقات بايثون. و-العلم المشتركة يشير إلى إنشاء مكتبة مشتركة ، و-فبيك العلم يشير إلى الحاجة إلى استخدام رمز مستقل الموقف.

الملف الناتج example.so يمكنك الاستيراد إلى بيثون باستخدام بيان الاستيراد واستخدام الوظائف المحددة في رمز ج.

كتابة كود بايثون

بايثون هي لغة برمجة عالية المستوى ومفسرة مع بناء جملة بسيط ومفهوم. يستخدم على نطاق واسع لتطوير التطبيقات والبرمجة النصية وأتمتة المهام. في هذا القسم ، سنلقي نظرة على المبادئ الأساسية لكتابة كود بايثون.

التعليقات

قد يحتوي كود بايثون على تعليقات يتم تجاهلها من قبل المترجم وتعمل على شرح الكود. التعليقات ملائمة للاستخدام لتوثيق الكود وشرح كيفية عمله. في بايثون ، تبدأ التعليقات بالحرف # وتستمر حتى نهاية السطر.

# هذا

هو تعليق مطبوع ("مرحبا بالعالم!") # هذا أيضا تعليق

المتغيرات

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

س = 5

ص = "مرحبا"

العمليات

بايثون يدعم جميع العمليات الحسابية القياسية: الجمع والطرح والضرب والقسمة ومعامل. يتم تنفيذ العمليات على المتغيرات أو القيم وإرجاع النتيجة.

س = 10

ص = 3

مجموع = س + ص

فرق = س ص

همز = س * ص

مثل = س / ص

وزارة الدفاع = س ٪ ص

طباعة ("مجموع:" ، مجموع)

طباعة ("الفرق:" ، فرق)

طباعة ("المنتج:" ، همز)

طباعة ("حاصل القسمة:" ، مثل)

طباعة ("ما تبقى من القسمة:" ، وزارة الدفاع)

المشغلين الشرطيين

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

س = 3

إذا س > 0:

طباعة ("رقم موجب")

إليف س < 0:

طباعة ("الرقم السالب")

آخر:

طباعة ("صفر")

دورات

تسمح لك الحلقات بتنفيذ كتلة معينة من التعليمات البرمجية عدة مرات. يستخدم بيثون لحين الحلقات. تسمح لك الحلقة بالتكرار من خلال العناصر الموجودة داخل كائن قابل للتكرار ، مثل قائمة أو سلسلة. في حين حلقة ينفذ كتلة من التعليمات البرمجية طالما أن الشرط المحدد هو الصحيح.

# من أجل

اللغات حلقة = ["بيثون" ، "جافا" ، "ج C"]

للغة في اللغات:

طباعة (لغة)

# حلقة بينما

العد = 0

بينما العد < 5:

طباعة ("العد:" ، العد)

عدد + = 1

المهام

وظائف تسمح لك لتجميع وإعادة استخدام أجزاء من التعليمات البرمجية. في بيثون ، يتم الإعلان عن وظائف باستخدام الكلمة مواطنه ، تليها اسم وظيفة وقائمة من المعلمات. يمكن للدالة إرجاع قيمة باستخدام الكلمة الرئيسية المرتجعة.

الأرقام المضافة (س ، ص):

العودة س + ص

مجموع = إضافة أرقام (5 ، 3)

طباعة ("مجموع:" ، مجموع)

المكتبات

بيثون لديها مجموعة واسعة من المكتبات التي تضيف وظائف وميزات إضافية إلى المكتبة القياسية. يمكن تثبيت المكتبات باستخدام أدوات إدارة الحزم مثل النقطة. لاستخدام المكتبة في بايثون ، يجب استيرادها باستخدام الكلمة الرئيسية للاستيراد.

استيراد الرياضيات

طباعة ("الجذر التربيعي لـ 25:" ، الرياضيات.مربع (25))

خاتمة

في هذا القسم ، قمنا بتغطية أساسيات كتابة كود بايثون. بايثون هي لغة برمجة قوية ومرنة يمكن استخدامها لحل المهام المختلفة. باستخدام هذه الأساسيات ، يمكنك البدء في كتابة برامج بايثون الخاصة بك.

تجميع وإطلاق

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

الخطوة 1: كتابة التعليمات البرمجية في ج

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

# تشمل

مجموع الباحث (الباحث أ ، الباحث ب) {

العودة أ + ب;

}

الخطوة 2: ترجمة رمز ج

على ويندوز. على سبيل المثال ، لتجميع التعليمات البرمجية أعلاه في لينكس ، يمكنك استخدام الأمر التالي:

دول مجلس التعاون الخليجي mylib.so ميليب.c

، والتي سوف تحتوي على رمز ج المترجمة ويمكن استدعاؤها من بيثون.

الخطوة 3: استخدام كود بايثون

من المثال السابق ، يمكنك استخدام رمز بايثون التالي:

استيراد أنواع

# تحميل

مكتبة ميليب = كتيبس. سدل ('./mylib.so ')

# استدعاء مجموع الدالة

النتيجة = ميليب.مجموع (5 ، 7)

طباعة (النتيجة) # المخرجات: 12

من المكتبة المترجمة في ج وإخراج النتيجة إلى وحدة التحكم.

سؤال وجواب

كيف يمكنني استخدام ج وبيثون معا?

لاستخدام سي وبايثون معا ، يمكنك استخدام طرق مختلفة ، مثل كتابة الأغلفة في سي لوظائف بايثون أو كتابة ملحقات بايثون باستخدام سي. هناك أيضا طرق أخرى ، مثل استخدام مكتبة كتيبس لاستدعاء وظائف من مكتبات ج المشتركة في بيثون.

كيف يمكنني كتابة المجمع في ج لوظيفة الثعبان?

لكتابة المجمع في ج لوظيفة بيثون ، تحتاج إلى استخدام بيثون.ح وحدة ، والذي يسمح لك لاستخدام وظائف بيثون والهياكل في ج. أولا ، تحتاج إلى إنشاء ملف شفرة المصدر في ج وتشمل بيثون.ملف رأس ح. ثم تحديد وظيفة المجمع باستخدام ماكرو بيفونك واستدعاء وظيفة بيثون المطلوبة داخل هذه الوظيفة.

ما هو امتداد بايثون وكيف أكتبه في ج?

تمديد بيثون هو وحدة نمطية التي تسمح لك لإضافة وظائف وفئات جديدة في اللغة ج إلى بيثون. لكتابة ملحق في ج ، تحتاج إلى إنشاء ملف شفرة المصدر في ج وتشمل ملفات رأس بيثون.ح والمكتبة المساعدة. ثم تحتاج إلى تحديد وظيفة تهيئة الوحدة وإضافة الوظائف والفئات الخاصة بك إليها باستخدام وحدات الماكرو بيميثوديف و بيمودولي_كريتي.

كيف يمكنني استخدام كتيبس لاستدعاء وظائف في ج في بيثون?

لاستخدام مكتبة كتيبس لاستدعاء وظائف ج في بيثون ، تحتاج إلى استيراد مكتبة كتيبس وتحميل مكتبة سي المشتركة باستخدام كتيبس.سدل () وظيفة. ثم يمكنك استدعاء وظائف من هذه المكتبة ، وتحديد أنواع الوسائط وقيمة الإرجاع. عند استدعاء وظيفة في ج في بيثون ، تحتاج أيضا إلى تحويل الوسائط إلى نوع البيانات المناسب.

ما هي مزايا وعيوب استخدام ج وبايثون معا?

واحدة من المزايا الرئيسية لاستخدام ج و بيثون معا هو القدرة على استخدام القوة والأداء من ج لكتابة وظائف الأمثل ، ومن ثم استخدام هذه الوظائف في بيثون لتطوير أكثر ملاءمة والاستخدام. ومع ذلك ، فإن استخدام سي يمكن أن يعقد التطوير والتصحيح بسبب نهج منخفض المستوى ويتطلب معرفة ومهارات إضافية في برمجة سي.

ما هي البدائل للجمع بين ج وبيثون?

أحد البدائل للجمع بين سي وبيثون هو استخدام لغات البرمجة الأخرى التي يمكن دمجها بسهولة مع بايثون ، مثل سي++, جافا أو الصدأ. توفر هذه اللغات أيضا أداء عاليا وقدرة على كتابة ملحقات لبيثون ، ولكنها توفر ميزات ووسائل راحة أكثر حداثة من سي.