أكثر

تثبيت توزيعات Python الأخرى [على سبيل المثال Python (x، y)] أعلى تثبيت ArcGIS؟


أنا أستخدم ArcGIS 10 وأرغب في استخدام العديد من المكتبات الإضافية التي لم يتم تضمينها في الإصدار المقدم من ArcGIS (خاصة numpy و matplotlib). أولاً حاولت تثبيتها يدويًا كما هو موضح هنا: http://matplotlib.sourceforge.net/users/installing.html

ولكن لأنه يبدو أن هذا لا يعمل

لقد جربت العديد من القوائم والمنتديات البريدية المختلفة ولكن يبدو أن هذه المشكلة لا يمكن حلها حتى الآن ؛ انظر أيضًا منشوري هنا: لا يعمل matplotlib في ArcGIS 10 و Eclipse (Python)

أتساءل عما إذا كان قد ينجح الأمر إذا قمت فقط بتثبيت التوزيع PYTHON (X ، Y) الذي يحتوي على جميع الحزم التي أحتاجها للتطوير. (انظر http://www.pythonxy.com/)

هل يتمتع أي شخص بالخبرة ويعرف ما إذا كان بإمكاني فقط تثبيت توزيعة أخرى أعلى الإصدار الحالي المثبت بواسطة ArcGIS 10 دون فقد وظائف ArcGIS Python الخاصة بي. ربما قام شخص ما بتجربة ذلك وقام بتثبيت توزيع PYTHON (X ، Y) لاستخدامه مع ArcGIS بالفعل؟ ما هو الإصدار الأفضل؟ الأحدث يعمل مع Python 2.6.6.


أسلم شيء هو استخدام تثبيت ArcGIS متى أردت استخدام Arcpy. لكن تثبيت مكتبات أخرى في تثبيت ArcGIS يمكن أن يصبح مشعرًا.

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

يمكنك بالتأكيد تثبيت تثبيتات Python الأخرى جنبًا إلى جنب مع ArcGIS. إذا كنت تريد استخدام Arcpy منه ، فيجب عليك استخدام نفس الإصدار (على الرغم من ذلك ، يمكنك ضمان أن كل شيء سيعمل بشكل صحيح). سيتعين عليك توخي الحذر في مسارات ومتغيرات بيئتك. يمكن أن يكون برنامج Virtualenv مفيدًا في هذه الحالة أيضًا.


يعتمد ArcGIS 10 على إصدار معين من NumPy ، لذلك من الخطورة قليلاً تثبيت (X ، Y) فوقه. تحتوي هذه الصفحة على مجموعة كبيرة من مكتبات Python مع Windows intallers ، وقد يكون من الأكثر أمانًا تثبيت تلك التي تحتاجها فقط حسب الحاجة.


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

هتافات


ملاحظة تحريرية:
تحذير: توضح هذه الإجابة كيفية تثبيت Python من الإصدارات المستقبلية من Debian. هذا سينتج عن نظام يمزج إصدارات دبيان، وسيؤثر على أكثر من Python - في معظم الحالات ، سيؤدي تطبيق هذه التعليمات إلى جذب المكتبات الأحدث أيضًا. لن يستفيد الإعداد الناتج من التحديثات الأمنية بنفس السرعة المتوقعة للحزم التي يتم تحديثها. يُعرف هذا باسم فرانكن ديبيان.

لا يحتوي دبيان على Python 3.6 في مستودعاته ، لكن الاختبار يحتوي عليه.

الإجراء الصحيح والمقبول رسميًا

لكن يجب أن أشير إلى أن هذا ليس حلاً رسميًا لأنه يستخدم مستودعات اختبار.

يمكنك تثبيت Python-3.6 على Debian 8 كما يلي:

يوصى باستخدام تطبيق make altinstall وفقًا للموقع الرسمي.

إذا كنت تريد تضمين النقطة ، فأنت بحاجة إلى إضافة --with-ensurepip = التثبيت إلى مكالمة التكوين الخاصة بك. لمزيد من التفاصيل انظر ./configure - help.

تحذير: إجراء التثبيت يمكنه الكتابة فوق أو التنكر في ملف Python الثنائي. لذلك يوصى بإجراء تثبيت بديل بدلاً من إجراء التثبيت لأنه يقوم فقط بتثبيت exec_prefix / bin / pythonversion.

يجب تثبيت بعض الحزم لتجنب بعض المشكلات المعروفة ، راجع: مشاكل البناء الشائعة(محدث)

يمكنك تنزيل أحدث إصدار من python-x.y.z.tar.gz من هنا.

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

لنفترض أنك قمت بتثبيت python3.7 على امتداد دبيان ، فاستخدم الأمر whereis python لتحديد موقع الملف الثنائي (* / bin / python). ه ، ز:

python3.7 مع أولوية 50 هو الآن python الافتراضي الخاص بك ، وسوف يطبع python -V:

للتبديل بينهما ، استخدم:

التوصية الرسمية هي "لا تحتاج في الواقع إلى برامج أحدث"

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

إذا قمت بإحضار مصادر python ، فقم ببناء مترجم 3.6 باستخدام --prefix للتحكم في المكان الذي ينتهي فيه الأمر ، ثم استخدم virtualenv مع الخيار --python ، ثم يمكنك استخدام python 3.6 دون التأثير على أي شيء خارج مشروعك.

قد تسير العملية على النحو التالي:

إذا كنت ستفعل ذلك ، فقد ترغب في التفكير في علامة --enable-optimizations في البرنامج النصي لتكوين Python ، والذي يبدو أنه يتيح بعض الميزات مثل التحسين الموجه للملف الشخصي. يزيد من أوقات الإنشاء ولكن يبدو أنه ينتج عنه مترجم أسرع بنسبة 10٪ أو نحو ذلك وفقًا لبعض المعايير.


11 إجابات 11

اطلب وضع الحماية لفريق التطوير إن أمكن

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

اطلب من المطورين الحصول على وصول المسؤول.

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

لا تفسدها.

إذا كنت لا تزعجك في مجال تكنولوجيا المعلومات ، فمن غير المرجح أن يزعجك ذلك.

هذا ليس غريبا كما تعتقد. لقد تم حرق الشركات عندما يقوم الموظفون بتنزيل البرامج بدون ضوابط ، لذلك رأيت شخصيًا تزايد قيود تكنولوجيا المعلومات.

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

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

إنهم بطيئون حقًا في تغيير الأمور.

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

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

إذا تمكنت من إثبات أن كل ما تريده يعادل وظيفيًا ما يمتلكه شخص آخر بالفعل ، فمن المرجح أن يتم منح طلبك ، على أساس أنه بالفعل لديها تم منحها لشخص (يفترض) أن يكون مسؤولاً بشكل متساوٍ.

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

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

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

قسم تكنولوجيا المعلومات الذي تصوره على أنه جاهل هو في الواقع صحيح ، وأنت (معذرة قسري) جاهل. لا يمكنك فقط تنزيل برنامج كمبيوتر قابل للتشغيل من الويب دون فحصه بدقة لأنه قد يحتوي على برامج ضارة قد تدمر شركتك أو تلحق أضرارًا كبيرة بها.

بشكل افتراضي ، يجب أن يتم منعك من تنزيل البرامج. تحتاج إلى أن تشرح لقسم تكنولوجيا المعلومات سبب كون هذا البرنامج آمنًا.

أوصي بأن تقرأ عن ارتباك التبعية ، والذي يعد مجرد واحد من العديد من الأشياء التي يمكن أن تسوء عندما تقوم بتنزيل رمز من الويب بلا مبالاة. https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610

قد يكون هناك سوء فهم أساسي في إجابة تكنولوجيا المعلومات. هنا إجابة من منظور هندسة البرمجيات.

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

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

بالنسبة للأمان ، ضع في اعتبارك فضيحة Docker cryptominer كمثال مناسب. في الواقع ، المشكلة موجودة ومستمرة ، لكنني قررت سحب مقال من 2018.

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

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

ربما ينبغي مناقشة هذا الأمر بشكل أفضل في Security SE ، ولكن المفهوم هو أنك لا تختار أي مستودع / johnthehacker عشوائي (مقتبس من DockerCon 2021) ، للأسباب التالية:

  1. يمكن لأي شخص طلب أي شيء شرير لمشاريع نظام التشغيل ، وقد يقبله المؤلف دون نية إلحاق الضرر ، ولكن من خلال عدم فهم التأثير تمامًا (على سبيل المثال ، نقص الخبرة / التعليم)
  2. لقد قررت سحب ما تم الكشف عنه شوكة خبيثة لمشروع مشهور
  3. يدعي المشروع أنه يقوم بشيء مبتكر ولكن لم يتم اكتشاف برمجياته الخبيثة (مثل أداة التشفير) حتى الآن
  4. لا تقرأ شروط الترخيص بعناية لتجد أن التبعيات ترسل الكثير من البيانات إلى المطور (المطورين)

ملفات المتطلبات¶

"ملفات المتطلبات" هي ملفات تحتوي على قائمة بالعناصر التي سيتم تثبيتها باستخدام تثبيت pip مثل:

التفاصيل حول تنسيق الملفات موجودة هنا: تنسيق ملف المتطلبات.

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

في الممارسة العملية ، هناك 4 استخدامات شائعة لملفات المتطلبات:

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

تُستخدم ملفات المتطلبات لإجبار النقطة على حل التبعيات بشكل صحيح. لا تحتوي النقطة 20.2 والإصدارات الأقدم على دقة تبعية حقيقية ، ولكنها تستخدم بدلاً من ذلك المواصفات الأولى التي تجدها لمشروع ما. على سبيل المثال إذا كانت pkg1 تتطلب pkg3 & gt = 1.0 وكانت pkg2 تتطلب pkg3 & gt = 1.0 ، & lt = 2.0 ، وإذا تم حل pkg1 أولاً ، فإن pip فقط ستستخدم pkg3 & gt = 1.0 ، ويمكن أن ينتهي الأمر بسهولة بتثبيت إصدار من pkg3 يتعارض مع احتياجات pkg2. لحل هذه المشكلة ، يمكنك وضع pkg3 & gt = 1.0 ، & lt = 2.0 (أي المواصفات الصحيحة) في ملف المتطلبات مباشرةً مع متطلبات المستوى الأعلى الأخرى. مثل ذلك:

تُستخدم ملفات المتطلبات لإجبار النقطة على تثبيت نسخة بديلة من التبعية الفرعية. على سبيل المثال ، افترض أن ProjectA في ملف المتطلبات يتطلب ProjectB ، ولكن أحدث إصدار (v1.3) به خطأ ، يمكنك إجبار النقطة على قبول الإصدارات السابقة مثل:

تُستخدم ملفات المتطلبات لتجاوز تبعية مع تصحيح محلي يعيش في التحكم في الإصدار. على سبيل المثال ، لنفترض أن التبعية SomeDependency من PyPI بها خطأ ، ولا يمكنك الانتظار حتى يتم إصلاح المنبع. يمكنك استنساخ / نسخ src وإجراء الإصلاح ووضعه في VCS مع العلامة في وقت ما. يمكنك الإشارة إليه في ملف المتطلبات بسطر مثل:

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

من المهم أن يكون واضحًا أن النقطة تحدد تبعيات الحزمة باستخدام بيانات تعريف install_requires ، وليس من خلال اكتشاف ملفات requirements.txt المضمنة في المشاريع.


لماذا هذه الأطر ضرورية

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

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

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

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

  • إجراء أي تجريف للويب والوصول إلى قاعدة البيانات باستخدام أوامر SQL ومكتبات Python مثل BeautifulSoup و SQLalchemy
  • تنظيف وإعداد جداول البيانات الخاصة بك باستخدام Pandas ، ولكن بعد ذلك التبديل إلى R أو SPSS لإجراء الاختبارات الإحصائية وفترات الثقة في الحساب
  • استخدام ggplot2 لإنشاء التصور ، ثم استخدام محرر LaTeX مستقل لكتابة تقرير التحليلات النهائي

يؤدي التبديل بين الأطر البرمجية المتعددة إلى جعل العملية مرهقة وعرضة للخطأ.

ماذا لو كان بإمكانك عمل النمذجة الإحصائية والتحليل والتخيل داخل منصة Python الأساسية؟

دعونا نرى ما هي الأطر والطرق الموجودة لإنجاز مثل هذه المهام.


2 إجابات 2

يبدو أن دبيان تقوم الآن بشحن python-is-python3 نفسها (في sid والاختبار حتى كتابة هذه السطور) ، لذا فإن فرضية السؤال لم تعد صالحة ويمكنك فقط: sudo apt update & amp & amp sudo apt install python-is-python3 .

إذا كنت تريد الالتزام بالقاعدة التي تنص على أن كل شيء في / usr بصرف النظر عن / usr / local يجب أن يأتي من حزمة ، فسأقوم بالفعل بتنزيل حزمة python-is-python3 وتثبيتها. إنه يشحن فقط الرابط الرمزي / usr / bin / python والوثائق المطلوبة ، ومن غير المحتمل أن تتسبب علاقات الحزم الخاصة به في حدوث مشكلات في المستقبل.

لن يساعد الاسم المستعار في نصوص نصوصك ، ونظرًا لأن حزم Python لا تستخدم بدائل ، فإن إنشاء البديل الخاص بك (بدائل التحديث وما إلى ذلك) لن يكون حلاً قويًا.

إذا كانت نصوصك تستخدم / usr / bin / env python ، يمكنك إضافة ارتباط يدويًا في / usr / local / bin بدلاً من ذلك.

بغض النظر عما تقرر القيام به ، من الآن فصاعدًا ، يتعين على الحزم المعتمدة على Python في دبيان أن تستخدم بشكل صريح python2 أو python3 في منشآتها ، لذلك لن تواجه مشكلات ناجمة عن الحزم من المستودعات الرسمية (في Debian 11 وما بعده) ، باستثناء غير المستقرة والتجريبية في الوقت الحالي لأن تلك لا تزال تحتوي على حزم Python القديمة التي لم يتم تنظيفها بعد).


1 إجابة 1

  1. إنشاء بيئة افتراضية لمشروع:

    سينشئ Virtualenv venv مجلدًا في الدليل الحالي يحتوي على ملفات Python القابلة للتنفيذ ، ونسخة من مكتبة pip التي يمكنك استخدامها لتثبيت حزم أخرى. اسم البيئة الافتراضية (في هذه الحالة ، كان venv) يمكن أن يكون أي شيء بحذف الاسم سيضع الملفات في الدليل الحالي بدلاً من ذلك.

    يؤدي هذا إلى إنشاء نسخة من Python في أي دليل قمت بتشغيل الأمر فيه ، ووضعه في مجلد باسم venv.

    يمكنك أيضًا استخدام مترجم بايثون من اختيارك.

    سيستخدم هذا مترجم بايثون في /usr/bin/python2.7

  2. لبدء استخدام البيئة الافتراضية ، يجب تفعيلها:

    سيظهر اسم البيئة الافتراضية الحالية الآن على يسار الموجه (على سبيل المثال (venv) Your-Computer: your_project UserName $) لإعلامك بأنها نشطة. من الآن فصاعدًا ، سيتم وضع أي حزمة تقوم بتثبيتها باستخدام pip في مجلد venv ، معزولًا عن تثبيت Python العام.

    قم بتثبيت الحزم كالمعتاد ، على سبيل المثال:

    إذا كنت قد انتهيت من العمل في البيئة الافتراضية في الوقت الحالي ، فيمكنك إلغاء تنشيطها:

إذا كنت تريد نقل بيئتك:

يمكنك عمل قائمة بالحزم المثبتة داخل virtualenv:

وقم بتثبيتها على الوجهة virtualenv باستخدام:

من واقع خبرتي ، يمكن إنشاء Virtualenvs وإدارتها لكل من python2 و python3 (على نظامي ، لديّ Virtualenv و virtualenv3)

لاحظ أن virtualenv نفسها لا توفر مترجم لغة python. يسمح لك بإنشاء بيئات معزولة حيث يتوفر بالفعل مترجم Python.

IMHO ، تجميع ثنائيات python في البرنامج النصي الخاص بك لن يجعل الحزمة الخاصة بك أكبر بكثير فحسب ، بل ستجعل النص البرمجي الخاص بك في الواقع أقل محمول حيث سيتم تجميع الثنائيات لنظام التشغيل المحدد و glibc. إذا أراد شخص ما استخدام البرنامج النصي على نظام تشغيل / معمارية مختلفة (Linux) ، فلن يكون ذلك ممكنًا ما لم تقدم حزمة لهذا الإصدار.


2 إجابات 2

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

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

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


1 إجابة 1

تحليل (يمكنك تخطيها ، لكنها قد تساعد في تشخيص مشاكل مماثلة في المستقبل)

شكوى دول مجلس التعاون الخليجي الخاصة بك بخصوص ملف limits.h مفقود مُشار إليه من /usr/include/limits.h (اخر ملف limits.h):

التحقق مع /usr/include/limits.h يمكننا أن نرى ما يلي:

بمعنى آخر ، تتضمن limits.h الخاصة بـ libc اخر limits.h التي يوفرها المترجم نفسه. باستخدام أداة apt-file وقليلًا من الفطرة السليمة ، يمكننا تحديد أن الحزمة التي تحتاجها هي libgcc-8-dev:

يسرد استعلام dpkg الحزمة والملف مثبتين:

ومع ذلك ، يشكو مجلس التعاون الخليجي من عدم وجود دليل:

الخلاصة والإصلاح

كل هذا يعني على الأرجح أن حزمة libgcc-8-dev قد تعرضت للتلف بطريقة ما على نظامك. لاستعادته ، قم بتشغيل:

(قد تحتاج إلى استبدال 8 بإصدار GCC الرئيسي المناسب لديك)

بشكل عام ، إذا كنت لا تتذكر حذف limits.h يدويًا من نظامك أو العبث بتثبيت GCC بأي طريقة أخرى ، فقد يكون من الجيد التحقق من تناسق نظام الملفات وصحة محرك الأقراص الثابتة.