إدارة التبعيات في بايثون: دليل كامل وآمن

آخر تحديث: 11/19/2025
نبذة عن الكاتب: ج مصدر تريل
  • قم بإنشاء كل مشروع باستخدام بيئة افتراضية وحظر الإصدارات بملفات قفل لضمان إعادة الإنتاج.
  • أدوات مختارة حسب السياق: pip+venv، Pipenv، Poetry، PDM أو Rye، وفهم حصونك.
  • حماية الإصدارات من الأمان والتحقق من التجزئة ومسح نقاط الضعف في التبعيات العابرة.
  • قم بتكييف التدفق مع المتطلبات.txt في MWAA وCloud Run، واستخدم التخفيضات أو المستودعات الخاصة عندما تكون خاطئة.

إدارة التبعيات في بايثون

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

في الأسطر التالية، يمكنك العثور على دليل كامل وعملي يتعرف على كل ما هو أساسي: إنها إدارة جيدة للتبعيات ولأنها مهمة، مثل استخدام النقاط والمداخل الافتراضية، وكذلك العمل مع متطلبات ملف txt (بما في ذلك التكامل مع IDEs مثل Visual Studio)، والتي ستساعدك على القيام بذلك Pipenv, Poetry, PDM o Rye، وكيف نواجه منصات سحابية مثل Amazon MWAA (Airflow) وCloud Run. سوف ترى أيضا توصيات السلامة (الحظر والتثبيت، ومسح نقاط الضعف) والمسارات الواضحة عندما تختار كل أداة.

ما المقصود بإدارة التبعيات وما هو المهم

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

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

النقطة واليوم في اليوم: التثبيت والتحديث والمعلومات والتنظيف

النقطة هي مدير الحزم الكلاسيكية للنظام البيئي وهي سلسلة من الإصدارات الحديثة من بايثون. Comprueba su presencia con pip --version o python -m pip --version. إذا لم يكن أي سبب متاحًا، فيمكنك الإضافة باستخدام نص التثبيت المناسب أو من خلال خادم حزم التوزيع في Linux.

لتثبيت حزمة من المؤشر الرسمي PyPI، فقط قم بتثبيتها pip install nombre_paquete. إذا كنت تريد إصدارًا محددًا، فيمكنك استخدامه == (على سبيل المثال ، pip install requests==2.23.0) o المتوافقة مع المواصفات ~= بارا أكوتار أونا راما مينور (pip install requests~=2.18.0). احتفظ بذاكرة تخزين مؤقت محلية لتسريع عمليات التثبيت المستقبلية.

لمراجعة ما تم تثبيته، كرر أ pip list، وإذا كنت ترغب في معرفة تفاصيل حزمة محددة (ruta، الإصدار، التبعيات المعلنة)، pip show nombre. أيضا مع pip list --outdated يكتشف الحزم المحذوفة والمخادعة pip install --upgrade nombre تحديث مكتبة ملموسة. Si algo ya no te Sirve، pip uninstall nombre te ayuda a limpiarlo.

يمكن أيضًا تثبيته من مستودعات Git عند الحاجة، على سبيل المثال: pip install git+https://github.com/usuario/repositorio.git@rama. هذا النمط مخصص للعلامات والعلامات أو حتى يلتزم بالخرسانة، مما يساعد على اختبار الأجزاء أو الإصدارات السابقة لخطة.

المستودعات وPyPI وورق المتطلبات.txt

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

الطريقة التقليدية لالتقاط حالتك الداخلية هي طريقة تقليدية pip freeze > requirements.txt. يتضمن هذا الأرشيف إصدارات دقيقة لكل ما تم تثبيته، مما يسهل إعادة إنتاج المحتوى على آلة أخرى pip install -r requirements.txt. إنها عملية جيدة للمشاريع التي ترغب في نقلها بين المعدات أو الإنتاج أو الإنتاج.

إذا كنت تعمل مع Visual Studio، فهناك دعم مباشر لهذا التدفق: يمكنك تثبيت التبعيات من المتطلبات.txt أو إنشاءها أو تحديث الإدخالات الموجودة أو استبدالها بالكامل من مستكشف الحلول ووحدة برمجة Python. علاوة على ذلك، في حالة فشل أي اعتماد، لديك طريقتان: تحرير الملف لاستبعاد الحزمة الإشكالية وإعادة المحاولة، أو العمل على تثبيت إصدار قابل للتثبيت باستخدام خيارات النقاط.

تتمثل الحقيقة المتقدمة في سيناريوهات الشركات في إنشاء مستودع للطرق المحلية: مع pip wheel إنشاء الإطارات وتخصيصها بخيارات متطلبات.txt أيضًا --find-links y --no-index للتثبيت من جهازك الداخلي. تعمل هذه التقنية على تسريع عمليات التثبيت وتجنب الاعتماد على الإنترنت من خلال التوقف عن العمل.

متطلبات الأرشيف.txt وPyPI

Entornos virtuales: لا يمكن تفسيره

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

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

Pipenv: التبعيات والدوافع وراء نفس الشيء

Pipenv nació لتبسيط النقطة الثنائية + البيع وجمع إمكانية النقل بملفات القفل. يحافظ على أ Pipfile لإعلان التبعيات والأمم المتحدة Pipfile.lock لمنع الإصدارات الخرسانية، تأكد من تثبيت كل عضو في الجهاز بنفس الطريقة تمامًا.

ومن مميزاتها: إنشاء وإدارة عناصر افتراضية تلقائيًا، يفصل بين التبعيات العادية والتطوير، ويتكامل بشكل جيد مع المرافق الأخرى للنظام البيئي. إن تثبيت حزمة هو أمر مباشر مثل ذلك pipenv install requests; إذا كنت تريد تبعيات التطوير، pipenv install pytest --dev. Para activar el entorno, pipenv shell; para salir, exit.

في Pipfile يمكنك استخدام إصدارات محددة مألوفة مثل ==, >=, ~ o ^. تحظى إحدى SemVer بشعبية كبيرة ومريحة في نظام Python البيئي، وهي مرجع رسمي للإصدارات المقبولة لمقولة PEP 440، حيث أنها توفر المزيد من التركيز لعدم دعم الأشخاص باستخدام أداة اختيارية لـ PEP 440.

Si un paquete deja de hacer falta: pipenv uninstall nombre قم بإزالة وتحديث Pipfile مثل Pipfile.lock. لأولئك الذين يبحثون عن إعادة إنتاج وتجربة أكثر توجيهًا مثل pip+venv، يعتبر Pipenv خيارًا معقولًا للغاية.

الشعر، PDM وRye: التدفق الحديث مع pyproject.toml وlock

الشعر و PDM و Rye والخطوة الأكثر أهمية هي: تبعيات الإدارة والتعبئة والنشر المعتمدة على pyproject.toml وفي أرشيفات القفل. مع الشعر، يمكنك بدء مشروع، وتحديد البيانات الوصفية، وإنشاء حزمة ونشرها على PyPI دون فتح الواجهة. إنه حل دورة كاملة لحل التبعيات من خلال معرفة بيانات تعريف PyPI وقواعد PEP 440.

الفكرة الرئيسية للشعر والأسرة هي ذلك pyproject.toml يوضح بوضوح كيف يعمل المشروع على مستوى عالٍ، بينما يحتوي ملف القفل على الصور الفوتوغرافية الدقيقة للإصدارات والتجزئة التي تعمل. وبالتالي، يتعاون الفريق حول التعريف المعلن ويضمن القفل أن المحرك قابل للتكرار بدون التبعيات العابرة.

تقدم PDM تجربة مشابهة جدًا، مركزية أيضًا pyproject.toml, و الجاودار أضاف تركيزا مختلفا: بالإضافة إلى تبعيات الإدارة، يمكنك تثبيت إصدارات Python للمشروع, توحيد أكبر تدفق للعمل. الجاودار مدفوع بـ Armin Ronacher، وهو شخصية تتعرف على النظام البيئي من خلال مشاريع مثل Flask و Click.

Como aviso para navegantes: لا يؤدي حل النزاعات بين الحزم إلى نتائج مثالية دائمًا. في بعض الأحيان يكون من الضروري إعطاء الأولوية للتبعية، أو القيام بالتحديثات أو ضبط الكود لتجميع الإصدارات. هذه هي الحياة الحقيقية للمشاريع عندما ينمو الرسم.

uv y pixi: جديد يركز على السرعة وإعادة الإنتاج

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

Aunque todavia conviven con consolidadas options, يتم إجراء تجربة على المشاريع حيث يتم إعداد أكوام الزجاجة من خلال التحضير للداخل أو عندما يتم إعطاء الأولوية لاستنساخ الهواء. يعتمد الاختيار النهائي على احتياجاتك وتدفقك ومن الجيد أن تجمع بين بقية أدواتك.

الأمان: البحث والحظر والتحقق والمسح

قفل الإصدارات وسط الملفات مثل require.txt أو Pipfile.lock أو قفل الشعر ليس في وضع: تقليل المخاطر الحقيقية. في الإصدارات الأحدث، يقلل التحديث العرضي من حزمة تحتوي على ثغرة أمنية حديثة أو قد تحتوي على مواد ضارة. علاوة على ذلك، يتم حفظ الكثير من ملفات القفل hashes de integridad من خلال المصنوعات اليدوية، إذا لم يتزامن الملف الذي تم تنزيله، فستتوقف الأداة وستظل ثابتة في سلسلة التوريد.

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

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

التكامل مع Visual Studio: إنشاء متطلبات ملف txt والحفاظ عليها

يسهل Visual Studio السلسلة الكلاسيكية من متطلبات ملف txt:يمكنك تثبيت كل ما يظهر في الأرشيف أو إنشاء جزء من المحتوى الفعلي أو تحديث الشكل المحدد. عندما يكون موجودًا، فإن IDE يوفر خيارات مثل استبدال الإدخال، أو تحديث الإدخالات المقدمة فقط، أو تحديث وإضافة إدخالات جديدة تم اكتشافها في الداخل.

إذا استمر التثبيت بطريقة فاشلة، لديك خلاصتان تم التعرف عليهما: قم بتحرير الملف لاستبعاد الحزمة المتعارضة والبدء في البحث، أو استخدم خيارات النقطة لتعيين إصدار تريد تثبيته. Para entornos controlados, compilar ruedas con pip wheel واستخدامها --find-links y --no-index في ملف require.txt، يسرع كثيرًا ويعتمد بشكل أقل على الإنترنت.

Cloud y despliegues: Amazon MWAA (Airflow) y Cloud Run

في Amazon Managed Workflows for Apache Airflow (MWAA)، يتم تثبيت التبعيات بناءً على متطلبات ملف txt المضاف في S3. في كل مرة تقوم فيها بإصدار إصدار جديد، تقوم وحدة MWAA بإظهار المراجعة وتنفيذ الخدمة pip3 install -r requirements.txt هذا هو المجدول مثل العمال. يمكنك تثبيت إضافات تدفق الهواء، مما يقلل (.whl) ومؤشرات استهلاكية خاصة متوافقة مع PyPI.

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

في حالة Cloud Run لوظائف Python، المعيار المقبول هو require.txt في نفس الدليل الذي تستخدمه main.py. Pipfile أو Pipfile.lock غير مدعومين لهذه التدفقات، حيث لا يلزم تضمينها في المشروع. إطار الوظائف هو تبعية إلزامية؛ يمكن تثبيت المنصة من أجلك، وتقديم إعلان صريح لها.

إذا كنت بحاجة إلى تعبئة التبعيات المحلية (لأنك لا تستطيع الوصول إلى الإنترنت أو لأن الحزمة ليست موجودة في PyPI)، puedes descargar ruedas con pip download لإصدار بايثون والمنصة المناسبة وقم بإلغاء تفعيل الكود. يوجد أيضًا خيار بيع التبعيات باستخدام متغير التجميع GOOGLE_VENDOR_PIP_DEPENDENCIES، يشير إلى أن الدليل باستخدام العناصر يجب إعادة استخدامه دون تثبيته من اللون الأحمر.

Para dependencias privadas, يمكن لـ Artifact Registry توفير الحزم وإنشاء بيانات الاعتماد تلقائيًا لقسم الخدمة. إذا كنت تحتاج إلى مستودعات متعددة، فيمكنك التكرار إلى مستودع افتراضي يتحكم في ترتيب دقة النقاط. عندما يستخدم المستودع الخاص مصادقة SSH، سيتعين عليك نسخ العناصر مع الإخطار حتى لا يعرض محرك البناء أزرار SSH.

ممارسات جيدة للتخلص من الاشمئزاز

ابدأ كل مشروع في داخلك وتجنب التثبيتات العالمية؛ يمكنك منع حدوث تعارضات بين المشاريع وتسمح بالتخبط وإعادة إنشاء الأعمال بشكل آمن عندما يحدث خطأ.

تم إصدار الإصدارات عندما توفر مصدرًا للإنتاج أو CI أو العروض التوضيحية. أنت تستخدم require.txt أو Pipfile.lock أو قفل الشعر، والهدف هو أن المعدات والخوادم تتعامل تمامًا مع نفس مجموعة الحزم والتبعيات الفرعية.

استخدم ملف قفل دائمًا يسمح لك بإدخال الأداة وتأكد من تضمين التجزئة للتحقق من التكامل. إذا اكتشفت الاختلافات، فاستكشف ما قبل التحديث.

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

أدوات أنيقة لتحديد الحجم وخطوات المشروع: للنصوص البرمجية أو النماذج الأولية، pip+venv مع متطلبات.txt ويتم تنفيذه؛ للمنتجات ذات المعدات وخطوط الأنابيب، مثل أدوات النقاط والأنابيب والشعر؛ si بالإضافة إلى الحزم والمنشورات، الشعر أو PDM الرائعة؛ وإذا كنت بحاجة إلى إدارة إصدارات Python أيضًا، فإن Rye يبسط المجموعة.

عند استخدام كل أداة دون فقدانها في الكتالوج

pip + venv encaja de maravilla في مشاريع صغيرة واختبارات سريعة ومختبرات. أنيادي requirements.txt عندما تغادر للمشاركة أو الأسف.

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

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

PDM تقديم تجربة حديثة مدعومة على pyproject.toml، وبالنسبة للعديد من المعدات، يعد بديلًا مريحًا للغاية للشعر مع قرارات مماثلة ولكن بخبرة مختلفة.

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

الأحداث والأحداث القديمة والحالات الخاصة

Planifica cuándo actualizar وتجنب القيام بذلك قبل ضربة نقدية؛ Probar en un entorno de staging with el lock nuevoخفض الاستخدامات. إذا فشلت الأمور، فسيتم إنقاذ القفل الأمامي ليتحول إلى حالة مستقرة.

إذا كنت بحاجة إلى تثبيت الكود الذي تم تطويره، usa la instalación desde Git مع ذاكرة أو آداب ثابتة وتوثيقها. عند تنزيل إصدار من PyPI، يمكنك نقله إلى المسار المعتاد.

Para entornos sin salida على الإنترنت، تجميع وترتيب الأحداث الخاصة بها هو أسفل المانجا. Apunta en tu require.txt dónde encontrarlas con --find-links وإلغاء تنشيط المؤشرات الخارجية مع --no-index عندما يكون الأمر منطقيًا.

لماذا يعاني الكثير من الناس من التبعيات في Python وكيف يتجنبونها

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

يساعد أيضًا في فهم الاختلافات المفاهيمية بين SemVer وPEP 440، لتفسير المشغلين بشكل صحيح وتوقعات التوافق. لا تتبع جميع المكتبات نفس التخصص، وستقوم بتطبيق القواعد الخاصة في وقت حل المجموعة النهائية.

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

الوظائف ذات الصلة: