عنوان هذا المنشور هو إشارة إلى أن تغليف Python الخاص بـ Glyph جيد الآن. أعتقد أنه من الآمن أن نقول إننا، خلال هذه السنوات الثماني، انتقلنا من "جيد" إلى "عظيم". استمر في القراءة لمعرفة أسبابي.
أؤكد أن الصعوبات الرئيسية التي تواجه تغليف بايثون هي
كانت عملية Bootstrapping مشكلة غالبًا ما يتم إهمالها. هل يجب أن نطلب من الأشخاص تثبيت بايثون من https://python.org؟ توزيع اناكوندا؟ كيف نمنع الأشخاص من استخدام مدير حزم النظام الخاص بهم والمخاطرة بكسر كل شيء؟
ولا تنسَ دورة حياة البيئة الافتراضية بأكملها. من الجنون مدى خدري تجاه الأمر باعتباري مستخدمًا لبايثون لفترة طويلة، ولكن في كل مرة يتعين علي أن أشرحها أرى وجوه طلابي وأعتقد أن "هذا ليس جيدًا".
بالتأكيد، هناك مشكلات أخرى، مثل كيفية إنشاء ونشر الحزم القابلة للتوزيع. لكنني أزعم أن هذه لا تؤثر على معظم المبتدئين في بايثون . بالإضافة إلى ذلك، فهي في طور المعالجة أيضًا. واصل القراءة.
في 15 فبراير، أطلق Astral الأشعة فوق البنفسجية وقفزت من السفينة على الفور. كجزء من وظيفتي، يتعين علي بشكل روتيني تثبيت الكثير من التبعيات التي يحتمل أن تكون متضاربة، وكان uv بمثابة راحة فورية.
ولكن الشيء المثير للاهتمام هو أن uv الآن قد تجاوزت مرحلة "النقطة الأسرع" الأولية وهي تفي بوعدها بأن تكون "مشروع بايثون شامل ومدير حزم سريع وموثوق وسهل الاستخدام".
]بالعودة إلى مشاكل التمهيد والتنشيط التي ذكرتها في البداية، كيف تحلها الأشعة فوق البنفسجية؟ خذ بعين الاعتبار هذا:
في الأساس، هذا:
$ mkdir uv-playground $ cd uv-playground $ uv init warning: `uv init` is experimental and may change without warning Initialized project `uv-playground` $ uv add click warning: `uv add` is experimental and may change without warning Using Python 3.12.3 interpreter at: /usr/bin/python3 Creating virtualenv at: .venv Resolved 3 packages in 66ms Built uv-playground @ file:///tmp/uv-playground Prepared 2 packages in 430ms Installed 2 packages in 0.62ms click==8.1.7 uv-playground==0.1.0 (from file:///tmp/uv-playground) $ tree . ├── pyproject.toml ├── README.md ├── src │ └── uv_playground │ ├── __init__.py └── uv.lock 3 directories, 4 files $ uv run python -c "from uv_playground import hello; print(hello())" warning: `uv run` is experimental and may change without warning Hello from uv-playground!
لذلك، بالنسبة للسؤال "كيف أبدأ في تعلم بايثون على جهاز الكمبيوتر الخاص بي"، يمكنك الآن الرد عالميًا: "تثبيت uv".
فيما يتعلق بموضوع البيئات الافتراضية، أنا أتفق بشكل أساسي مع أرمين عندما يقول
npm أفلت من دون أي ما يعادل "التنشيط" وأعتقد أن نظام Python البيئي المستقبلي لن يجد أيضًا فائدة كبيرة في تنشيط virtualenv.
لاحظت أيضًا أن uv init اختار الفقس. لقد كان لدي دائمًا تفضيل طفيف تجاه PDM، ولكن أعتقد أن هذه قد تكون نقطة اللاعودة.
لقد استغرق الأمر من ليا والمساهمين الكثير من العمل للتوصل إلى مخطط القرار هذا لدليل التعبئة والتغليف PyOpenSci. لكن حقيقة أن هناك الآن خط أساس يمكن للأشخاص تغييره في حالة كانت لديهم احتياجات أكثر تحديدًا (على سبيل المثال، Meson أو واجهة خلفية قادرة على البناء scikit) توفر مرة أخرى تجربة مطور أفضل بكثير.
يعد موضوع conda vs pip مصدرًا شائعًا آخر للارتباك. لقد كنت مستخدمًا ومعجبًا بـ conda منذ اليوم الأول، وقد أنقذ ذلك بايثون بشكل فعال من الموت الواضح جدًا في وقت كان من الصعب جدًا تثبيت الأشياء على Windows.
في السنوات التي تلت ذلك، كثيرًا ما أشرت إلى مشاركة المدونة القديمة التي كتبها Jake VanderPlas لشرح الاختلافات، ولكن يبدو أنها قضية خاسرة الآن.
لم تتم معالجة مشاكل التشغيل البيني بين النقطة والكوندا بشكل كامل أبدًا، وبينما أعتقد أن فريق Pixi يقوم بعمل رائع، أعتقد أن الأشعة فوق البنفسجية سوف تفوز على المدى الطويل.
أقر تمامًا أن حزم conda تم تنظيمها بشكل أفضل حول فكرة التعليمات البرمجية غير Python، وأن العالم الحالي لـ "العجلات السميكة على PyPI" يعد حلاً دون المستوى الأمثل. لكن النظام البيئي بأكمله تحرك في هذا الاتجاه: فمعظم الحزم تنشر الآن عجلات مجمعة مسبقًا لمجموعة متنوعة غنية من المنصات.
بمعنى آخر: قد لا تكون كوندا مفيدة في عام 2024 كما كانت في عام 2014، وربما حان الوقت للتوقف عن تدريسها للمبتدئين واعتبارها أداة متقدمة.
السبب في أن الوقت مبكر جدًا هو أن بعض أوامر الأشعة فوق البنفسجية هذه لا تزال تجريبية وقد تتطور في المستقبل. ولكن للمرة الأولى على الإطلاق، أرى بوضوح أداة سير عمل متوافقة مع المعايير، وشاملة، وخالية من مشكلات التمهيد، ومصممة بعناية، ويمكنها الفوز.
ما هو ما أراده العديد من نقاد التعبئة والتغليف في بايثون طوال الوقت، أليس كذلك؟ عدم الاضطرار إلى الاختيار من بين العديد من الأدوات المختلفة. لكنني أعتقد أن شركة uv تجاوزت ذلك بكثير وحلت مشكلات أخرى تتعلق بتجربة المطورين، وأنا سعيد وممتن لذلك.
أنا أستخدم الأشعة فوق البنفسجية بشكل فعال في كل شيء ولا أنظر إلى الوراء. سأستمر في التوصية بهذه الأداة للجميع، ومواصلة الحديث عنها، وآمل أن تصبح أكثر انتشارًا.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3