目次
1. ما هو pyenv؟
بالنسبة لمطوّري Python، غالبًا ما يحتاجون إلى استخدام إصدارات مختلفة من Python لكل مشروع على حدة. في هذه الحالات، يأتي دور أداةpyenv. فهي أداة تتيح لك إدارة عدة إصدارات من Python بسهولة والتبديل بينها حسب كل مشروع.تحديات إدارة إصدارات Python
أثناء تطوير مشاريع Python، قد تحتاج إلى أكثر من إصدار مختلف. على سبيل المثال، قد يستخدم أحد المشاريع Python 3.9 بينما يحتاج مشروع آخر إلى Python 2.7. عادةً ما يكون الإصدار المثبّت على النظام واحدًا فقط، مما يجعل التبديل بين الإصدارات أمرًا معقدًا. هنا يأتي دورpyenv لحل هذه المشكلة.مميزات pyenv
باستخدامpyenv يمكنك الحصول على الفوائد التالية:- سهولة التبديل بين الإصدارات: يمكنك عبر
pyenvالتبديل بسهولة بين إصدار Python على مستوى النظام ككل أو على مستوى كل مشروع. - إدارة متعددة للإصدارات: يمكنك إدارة عدة إصدارات مثبتة من Python عبر أمر واحد، مما يتيح لك التوافق مع متطلبات المشاريع المختلفة.
- دعم معظم أنظمة التشغيل (باستثناء Windows): يعمل على أنظمة مثل macOS وLinux بشكل فعّال.
آلية عمل pyenv
يقومpyenv بإنشاء مجلدات منفصلة لكل إصدار من Python وتثبيت الإصدارات بداخلها. يمكن للمستخدم تحديد الإصدار المطلوب عبر الأوامر pyenv global أو pyenv local سواء على مستوى النظام بالكامل أو على مشروع محدد.
Ad
2. طريقة تثبيت pyenv
نظرة عامة
لاستخدامpyenv يجب أولًا تثبيته على نظامك. في هذا القسم، سنشرح خطوات التثبيت على أنظمة macOS وLinux. أما على Windows فلا يتم دعمه بشكل مباشر، ويفضَّل استخدام بدائل مثل WSL أو Anaconda.خطوات التثبيت على macOS
في macOS، يمكن تثبيتpyenv بسهولة عبر أداة Homebrew، وهي مدير حزم لأنظمة macOS. اتبع الخطوات التالية:- التحقق من تثبيت Homebrew
افتح الطرفية ونفّذ الأمر التالي للتحقق:
brew --versionإذا ظهر رقم الإصدار فهذا يعني أن Homebrew مثبت. إن لم يكن مثبتًا، قم بزيارة الموقع الرسمي لـ Homebrew واتبع التعليمات.- تثبيت pyenv
بعد التأكد من وجود Homebrew، نفّذ الأمر التالي:
brew install pyenv- إعداد المتغيرات البيئية
لكي يعملpyenvيجب إضافة إعداداته إلى ملف.bash_profileأو.zshrc:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init --path)"' >> ~/.bash_profileثم أعد تشغيل الطرفية أو نفّذ: source ~/.bash_profile- التحقق من التثبيت
تأكّد من نجاح التثبيت بتنفيذ الأمر:
pyenv --versionخطوات التثبيت على Linux
على أنظمة Linux، تكون الخطوات مشابهة تقريبًا لما هو في macOS، لكن يتم الاعتماد على مديري الحزم مثلapt أو yum. فيما يلي مثال لتثبيت pyenv على Ubuntu:- تثبيت الحزم المطلوبة
قبل تثبيتpyenv، يجب تثبيت الحزم الأساسية:
sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git- تثبيت pyenv
باستخدام Git قم بتنفيذ:
curl https://pyenv.run | bash- إعداد المتغيرات البيئية
أضف السطور التالية إلى ملف.bashrcأو.zshrc:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"ثم أعد تشغيل الطرفية أو نفّذ: source ~/.bashrc- التحقق من التثبيت
نفّذ:
pyenv --versionاستكشاف الأخطاء
إذا ظهرت مشاكل أثناء التثبيت، فقد تكون بعض المكتبات الناقصة هي السبب. على أنظمة Linux قد تختلف المكتبات المطلوبة حسب التوزيعة، لذلك يُنصح بالرجوع إلى التوثيق الرسمي لإضافة ما ينقص.
3. إدارة إصدارات Python
بعد تثبيتpyenv، يمكنك البدء بإدارة إصدارات Python المختلفة، سواء للتثبيت أو التبديل أو الإزالة.تثبيت إصدارات Python
يمكنك تثبيت أي إصدار تريده بسهولة:- عرض قائمة الإصدارات المتاحة
باستخدام:
pyenv install --list- تثبيت إصدار محدد
على سبيل المثال:
pyenv install 3.9.1التبديل بين الإصدارات
يمكنك التبديل بين الإصدارات عبر:- على مستوى النظام بالكامل:
pyenv global 3.9.1- على مستوى المشروع فقط:
pyenv local 3.8.0- عرض الإصدار الحالي:
pyenv versionإلغاء تثبيت إصدار
إذا لم تعد بحاجة إلى إصدار معين: pyenv uninstall 3.9.1
Ad
4. استخدام pyenv مع virtualenv
يوفرpyenv إدارة قوية لإصدارات Python، لكن لإدارة المكتبات والاعتمادات الخاصة بكل مشروع بشكل أفضل، من الشائع دمجه مع virtualenv (البيئة الافتراضية).ما هو virtualenv؟
virtualenv أداة لإنشاء بيئات افتراضية مستقلة لكل مشروع، بحيث يتم عزل المكتبات والحزم. هذا يمنع أي تعارض بين المشاريع المختلفة على نفس الجهاز. على سبيل المثال: يمكن أن يستخدم المشروع A مكتبة requests بإصدار 2.0، بينما يستخدم المشروع B نفس المكتبة بإصدار 3.0، وكل مشروع سيبقى مستقلاً دون تعارض.الفرق بين pyenv و virtualenv
–pyenv: يركز على إدارة إصدارات Python (تثبيت/تبديل بين الإصدارات).
– virtualenv: يركز على إدارة المكتبات والاعتمادات داخل بيئة افتراضية مستقلة. باستخدامهما معًا تحصل على المزايا التالية:- إدارة نسخ Python مختلفة عبر
pyenv. - عزل الاعتمادات لكل مشروع عبر
virtualenv.
تثبيت pyenv-virtualenv
يمكنك تسهيل إدارة البيئات الافتراضية عبر إضافة ملحقpyenv-virtualenv:- التثبيت على macOS:
brew install pyenv-virtualenv- التثبيت على Linux:
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv- إعداد المتغيرات البيئية:
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
source ~/.bash_profileإنشاء بيئة افتراضية
لإنشاء بيئة افتراضية جديدة باستخدام إصدار محدد من Python: pyenv virtualenv 3.8.0 my_project_envسيتم إنشاء بيئة مستقلة باسم my_project_env.التبديل إلى البيئة الافتراضية
لتفعيل البيئة داخل مشروع: pyenv local my_project_envحذف البيئة الافتراضية
إذا لم تعد بحاجة إليها: pyenv uninstall my_project_envفوائد استخدام virtualenv
الجمع بينpyenv و virtualenv يضمن عزل كامل بين المشاريع، مما يقلل من تعارض المكتبات ويجعل بيئة التطوير أكثر استقرارًا.
5. ملاحظات مهمة عند استخدام pyenv
يوفرpyenv و virtualenv مرونة كبيرة في إدارة الإصدارات والبيئات، لكن هناك بعض النقاط التي يجب الانتباه إليها لتجنب المشاكل.1. دعم محدود على Windows
pyenv موجه بشكل أساسي إلى أنظمة macOS وLinux. أما على Windows فالدعم محدود. يمكن للمستخدمين على Windows الاعتماد على:- Windows Subsystem for Linux (WSL): لتشغيل بيئة Linux واستخدام
pyenvداخلها. - Anaconda: كبديل لإدارة الإصدارات والبيئات على Windows.
2. أخطاء بسبب نقص المكتبات
أثناء التثبيت على Linux، قد تظهر رسائل خطأ إذا كانت بعض المكتبات مفقودة مثل:WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?الحل: تثبيت المكتبات الناقصة مثل libbz2-dev و libssl-dev عبر: sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev3. تعارض بين pyenv و Python المثبت مسبقًا
قد يحدث تعارض إذا كان النظام يحتوي مسبقًا على Python وإعدادات المسارات (PATH) غير صحيحة. الحل:- تأكد من وجود الأسطر التالية في
.bashrcأو.zshrc:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"4. فشل تثبيت إصدار محدد
قد يفشل التثبيت بسبب نقص أدوات البناء. الحل: ثبّت الحزمbuild-essential و libssl-dev وأعد المحاولة.5. أخطاء في كتابة رقم الإصدار
إذا تمت كتابة إصدار غير مدعوم ستظهر أخطاء. الحل: استخدم: pyenv install --listللتحقق من الإصدارات المتاحة.6. تعارض في البيئات الافتراضية
إذا أنشأت عدة بيئات افتراضية باستخدام نفس الإصدار من Python، قد تحدث تعارضات بين الحزم. الحل:- أنشئ بيئة افتراضية مستقلة لكل مشروع عبر
virtualenvأوpyenv-virtualenvلتفادي المشاكل.
Ad
6. الخلاصة والخطوات التالية
يُعتبرpyenv أداة قوية وفعّالة لإدارة إصدارات Python، خاصة للمطورين الذين يعملون على مشاريع متعددة تتطلب إصدارات مختلفة. يتيح لك pyenv التبديل بين الإصدارات بسهولة وتنظيم بيئة التطوير بكفاءة. وعند دمجه مع virtualenv، يصبح من السهل أيضًا إدارة الاعتمادات الخاصة بكل مشروع بشكل منفصل.أهم النقاط حول استخدام pyenv
- سهولة إدارة الإصدارات: يمكنك التبديل بين عدة إصدارات من Python سواء على مستوى النظام أو المشاريع بسهولة.
- استخدام البيئات الافتراضية: عند الدمج مع
pyenv-virtualenvأوvirtualenv، يمكن عزل المكتبات لكل مشروع بشكل مستقل. - استكشاف الأخطاء: من المهم الانتباه للأخطاء المحتملة (مثل نقص المكتبات أو تعارض الإصدارات) ومعالجتها بسرعة عبر الإعدادات الصحيحة.
الخطوات التالية
- تحسين بيئة التطوير: بعد إتقان أساسيات
pyenv، يمكنك التفكير في أدوات إضافية مثلpipenvأوpoetryلإدارة الاعتمادات بشكل أبسط وأتمتة إعداد المشاريع. - التوافق مع أنظمة مختلفة: بالنسبة لمستخدمي Windows، يمكن الاستفادة من WSL أو استخدام Anaconda كبديل فعال.
- التجربة العملية: لا تكتفِ بالقراءة النظرية، بل قم بتجربة
pyenvفعليًا على مشاريعك الجديدة والقائمة. ستلاحظ كيف يسهل إدارة المكتبات والإصدارات ويجعل بيئة العمل أكثر مرونة.
オープンソースの力を活用する方法~Ubuntuの世界へようこそ~
目次 1 1. はじめに1.1 Pythonバージョン管理の重要性1.2 Ubuntuとpyenvの組み合わせの利点2 …





