الفرق بين تثبيت Conda وتثبيت النقطة.مقارنة الوظائف ، إلخ. [بايثون]

2019 5 年 月 日 26

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

كانت بيئة Anaconda تالفة عندما اعتقدت أن Jupyter Notebook لن يبدأ

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

الفرق بين Conda و Pip

ما هو كوندا

باختصار ، إنه مدير حزم يأتي بشكل قياسي مع Anaconda / Miniconda وهو نظام إدارة بيئي.

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

لا يعمل conda إلا عند تثبيته بواسطة مُثبِّت Anaconda أو مُثبِّت miniconda. حتى إذا قمت بتثبيت conda في بيئة python + pip ، فلا يمكنك استخدامها كما هو الحال في توزيع Anaconda.

ما هو بيب

مثبت حزمة Python القياسي ونظام إدارة الحزم الذي يأتي مع تثبيت python النقي.

يقوم بتنزيل وتثبيت الحزم من Python Package Index (PyPI) ، وهو مستودع للغات برمجة Python.

الاختلافات في كل وظيفة

يتم تلخيص أدوار كل من conda و pip في جدول بسيط.

وظيفةكوندابذرة
تركيب الحزمة وإدارتها
تبديل نسخة بايثونغير ممكن (بيبينف ، بديل بيينف)
إدارة البيئة الافتراضيةغير ممكن (استبدل بـ pipenv و virtualenv و venv)

نظرًا لأن conda هو أيضًا نظام إدارة بيئة ، يمكنك إنشاء بيئة افتراضية أو تغيير إصدار Python إلى 3.7 أو التبديل إلى 2.7.

باستخدام pip ، ستقوم بتثبيت واستخدام حزم مثل pyenv (التحكم في الإصدار) و venv (إدارة البيئة الافتراضية).

في الآونة الأخيرة ، ظهرت pipenv ، ويبدو أن لديها وظيفة يمكن أن تحل محل conda تقريبًا.

تثبيت Conda وتثبيت نقطة

تتشابه أوامر تثبيت conda وتثبيت pip ، لكن يبدو أن آلية تثبيت الحزم مختلفة تمامًا. يوجد جدول مقارنة سهل الفهم على موقع anaconda.com ، لذلك سأقتبس منه (ياباني ومُعدّل لتسهيل فهمه).

تثبيت كونداتثبيت نقطة
تنسيق الحزمةバ イ ナ リالعجلة أو المصدر
تجميع不要حاجة
نوع الحزمةلغات أخرى ممكنة أيضابيثون فقط
إدارة البيئة الافتراضية ، إدارة الإصدارممكنغير ممكن (بديل لـ virtualenv ، venv)
فحص التبعيةあ りلا شيء
مصدر تنزيل الحزمةمستودع الأناكوندا ، سحابة الأناكونداPYPl

・ تدعم Conda لغات أخرى غير لغة بيثون

Anaconda / Miniconda عبارة عن منصة مشتركة تتيح لك تثبيت لغات برمجة متعددة مثل Python و R و Ruby و Java و JavaScript و C / C ++ و FORTRAN وحزمها.

يمكن لـ conda تثبيت حزم البرامج المكتوبة بلغات مختلفة على نظامها الأساسي.

لا يمكن تثبيت نقطة إلا على حزم بايثون.

-ما إذا كان التجميع مطلوبًا

يتم تخزين أكثر من 1000 حزمة يمكن تثبيتها باستخدام الأمر conda في مستودع مخصص يسمى Anaconda cloud.

نظرًا لأن هذه الحزم عبارة عن ملفات ثنائية مجمعة ، فيمكن تنزيلها وتثبيتها دون الحاجة إلى مترجم.

تحتوي الملفات التي تقوم بتثبيتها باستخدام pip على ملفات المصدر ، والتي ستحتاج إلى تجميعها من جانب العميل.

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

ما إذا كان هناك فحص تبعية أم لا

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

يدعم conda هذا من خلال توفير محلل SAT يجمع البيانات الوصفية لجميع الحزم لفهم التبعيات.عند التثبيت ، فهم سريعًا التبعيات المعقدة بين الحزم وإجراء التحديثات والتثبيتات المناسبة.

اختلاف سرعة التنفيذ

كانت هناك أيضًا معلومات تفيد بأن عمليات المصفوفة مع numpy مثبتة مع conda تكون أسرع.هذا يعتمد على نوع الحساب ، لكن يبدو أن الفرق أكبر من الضعف.

هناك طرق تنفيذ مختلفة لـ BLAS (برامج الجبر الخطي الأساسية) التي تتعامل بالفعل مع عمليات المصفوفة التي يطلق عليها NumPy ، وإحدى هذه الطرق هي Intel MKL (مكتبة Math Kernel) التي طورتها Intel.).في الواقع ، يتم استدعاء BLAS من NumPy المثبت بواسطة Anaconda هو MKL ، ولكن عندما يتم تثبيت NumPy مع pip ، يتم استخدام BLAS الذي يسمى OpenBLAS عادةً ، لذلك هناك احتمال أن يكون هناك اختلاف في الأداء هنا.

الفرق في سرعة NumPy بين Anaconda's NumPy و pip-Orizuru

BLAS هي مكتبة تقوم بإجراء عمليات حسابية للمصفوفات والمتجهات الأساسية. يوجد المزيد من النمل الحي في المكتبة الخفية ولست متأكدًا ...

تم تلخيص "مقدار سرعة معالجة الحساب التي تتغير فعليًا اعتمادًا على الاختلاف في BLAS" و "كيفية اكتشاف BLAS المستخدم في بيئتك" بالتفصيل في الصفحات التالية.يرجى الرجوع إذا أردت.

يبدو أن سرعة الحساب تتغير اعتمادًا على BLAS المستخدم في Numpy [Python]

هذا هو الفرق بين Conda و Pip.

المرجعي


فهم Conda و Pip
https://conda.io/en/latest/
قارن بين سرعات Anaconda's NumPy و PyPI's NumPy
توقف عن تثبيت Tensorflow باستخدام Pip من أجل الأداء!