الوثائق : https://pipx.pypa.io
رمز المصدر : https://github.com/pypa/pipx
للمقارنة مع الأدوات الأخرى بما في ذلك PIPSI ، انظر مقارنة بالأدوات الأخرى.
تحذير
لا ينصح بتثبيت pipx
عبر pipx
. إذا كنت ترغب في القيام بذلك على أي حال ، فقم بإلقاء نظرة على مشروع pipx-in-pipx
وقراءة القيود الموجودة هناك.
brew install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
ترقية PIPX مع brew update && brew upgrade pipx
.
sudo apt update
sudo apt install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
sudo dnf install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
sudo pacman -S python-pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
pip
على توزيعات أخرى: python3 -m pip install --user pipx
python3 -m pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
ترقية PIPX مع python3 -m pip install --user --upgrade pipx
.
scoop install pipx
pipx ensurepath
ترقية PIPX مع scoop update pipx
.
# If you installed python using Microsoft Store, replace `py` with `python3` in the next line.
py -m pip install --user pipx
من الممكن (على الأرجح) أن ينتهي أعلاه مع تحذير يشبه هذا:
WARNING: The script pipx.exe is installed in `<USER folder>AppDataRoamingPythonPython3xScripts` which is not on PATH
إذا كان الأمر كذلك ، فانتقل إلى المجلد المذكور ، مما يتيح لك تشغيل PIPX قابلة للتنفيذ مباشرة. أدخل السطر التالي (حتى لو لم تحصل على التحذير):
.pipx.exe ensurepath
سيؤدي ذلك إلى إضافة كل من المسار المذكور أعلاه و %USERPROFILE%.localbin
إلى مسار البحث الخاص بك. أعد تشغيل جلسة الطرفية الخاصة بك والتحقق من تشغيل pipx
.
ترقية PIPX مع py -m pip install --user --upgrade pipx
.
يمكنك أيضًا استخدام PIPX دون تثبيته. يمكن تنزيل Zipapp من إصدارات Github ويمكنك استدعاءها بمترجم Python 3.8+:
python pipx.pyz ensurepath
PIPX لديه دعم قبل الالتزام.
تتوفر إكمال Shell باتباع الإرشادات المطبوعة بهذا الأمر:
pipx completions
لمزيد من التفاصيل ، راجع تعليمات التثبيت.
pipx
؟ PIPX هي أداة لمساعدتك في تثبيت وتشغيل تطبيقات المستخدم النهائي المكتوبة في Python. إنه يشبه تقريبًا brew
MacOS و apt
's JavaScript و Linux.
يرتبط ارتباطًا وثيقًا بـ PIP. في الواقع ، يستخدم PIP ، ولكنه يركز على تثبيت وإدارة حزم Python التي يمكن تشغيلها من سطر الأوامر مباشرة كتطبيقات.
PIP هو مثبت حزمة للأغراض العامة لكل من المكتبات والتطبيقات بدون عزل البيئة. يتم تصنيع PIPX خصيصًا لتثبيت التطبيق ، لأنه يضيف العزلة ، ومع ذلك لا يزال يجعل التطبيقات متوفرة في Shell: PIPX تنشئ بيئة معزولة لكل تطبيق وحزمه المرتبطة بها.
لا يشحن PIPX مع PIP ، ولكن تثبيته غالبًا ما يكون جزءًا مهمًا من نظامك.
pipx
بتثبيت تطبيقات؟بشكل افتراضي ، يستخدم PIPX نفس فهرس الحزمة مثل PIP ، PYPI. يمكن لـ PIPX أيضًا التثبيت من جميع المصادر الأخرى التي يمكن لـ PIP ، مثل الدليل المحلي ، العجلة ، عنوان URL GIT ، إلخ.
يسمح Python و Pypi للمطورين بتوزيع الكود باستخدام "نقاط إدخال البرنامج النصي". تتيح نقاط الإدخال هذه للمستخدمين الاتصال إلى رمز Python من سطر الأوامر ، حيث يتصرف بشكل فعال مثل التطبيقات المستقلة.
PIPX هي أداة لتثبيت وتشغيل أي من هذه الآلاف من الحزم التي تحتوي على التطبيقات بطريقة آمنة ومريحة وموثوقة. بطريقة ما ، يحول فهرس Python Package (PYPI) إلى متجر تطبيقات كبير لتطبيقات Python. ليس كل حزم Python لها نقاط دخول ، ولكن الكثير منهم يفعلون ذلك.
إذا كنت ترغب في جعل الحزمة الخاصة بك متوافقة مع PIPX ، فكل ما عليك فعله هو إضافة نقطة إدخال نصوص وحدة التحكم. إذا كنت مستخدمًا للشعر ، فاستخدم هذه التعليمات. أو ، إذا كنت تستخدم Hatch ، جرب هذا.
يمكّنك pipx
من
install
. هذا يضمن عدم وجود تعارضات التبعية وإلغاء تثبيت نظيفة!run
والأفضل من ذلك كله ، يعمل Pipx مع أذونات المستخدم العادية ، ولا تتصل أبدًا sudo pip install
(أنت لا تفعل ذلك ، أليس كذلك؟).
pipx
يمكنك تثبيت تطبيق على مستوى العالم عن طريق التشغيل
pipx install PACKAGE
يقوم هذا تلقائيًا بإنشاء بيئة افتراضية ، ويقوم بتثبيت الحزمة ، ويضيف التطبيقات المرتبطة بالحزمة (نقاط الإدخال) إلى موقع على PATH
. على سبيل المثال ، يقوم pipx install pycowsay
بإتاحة أمر pycowsay
على مستوى العالم ، ولكن صناديق الرمل حزمة Pycowsay في بيئتها الافتراضية. لا يحتاج Pipx أبدًا إلى تشغيل Sudo للقيام بذلك.
مثال:
>> pipx install pycowsay
installed package pycowsay 2.0.3, Python 3.10.3
These apps are now globally available
- pycowsay
done! ?
>> pipx list
venvs are in /home/user/.local/share/pipx/venvs
apps are exposed on your $PATH at /home/user/.local/bin
package pycowsay 2.0.3, Python 3.10.3
- pycowsay
# Now you can run pycowsay from anywhere
>> pycowsay mooo
____
< mooo >
====
^__^
(oo)_______
(__) )/
||----w |
|| ||
يمكنك أيضًا التثبيت من مستودع GIT. هنا ، يتم استخدام black
كمثال.
pipx install git+https://github.com/psf/black.git
pipx install git+https://github.com/psf/black.git@branch # branch of your choice
pipx install git+https://github.com/psf/black.git@ce14fa8b497bae2b50ec48b3bd7022573a59cdb1 # git hash
pipx install https://github.com/psf/black/archive/18.9b0.zip # install a release
يجب استخدام بناء جملة PIP مع egg
عند تثبيت الإضافات:
pipx install "git+https://github.com/psf/black.git#egg=black[jupyter]"
إذا كان التطبيق المثبت بواسطة PIPX يتطلب حزمًا إضافية ، فيمكنك إضافتها باستخدام PIPX عن طريق الحقن. على سبيل المثال ، إذا قمت بتثبيت ipython
وتريد إضافة حزمة matplotlib
إليها ، فستستخدم:
pipx inject ipython matplotlib
يمكنك ضخ حزم متعددة عن طريق تحديدها جميعًا على سطر الأوامر ، أو عن طريق إدراجها في ملف نصي ، مع حزمة واحدة لكل سطر ، أو مجموعة. على سبيل المثال:
pipx inject ipython matplotlib pandas
# or:
pipx inject ipython -r useful-packages.txt
هذا هو بديل pipx install
.
pipx run
التنزيلات وتشغيل "تطبيقات" Python المذكورة أعلاه في بيئة مؤقتة لمرة واحدة ، مما يترك نظامك دون مساس بعد ذلك.
يمكن أن يكون هذا مفيدًا عندما تحتاج إلى تشغيل أحدث إصدار من التطبيق ، ولكن لا تريد بالضرورة تثبيته على جهاز الكمبيوتر الخاص بك.
قد ترغب في القيام بذلك عند تهيئة مشروع جديد وتريد إعداد بنية الدليل الصحيح ، عندما تريد عرض نص المساعدة للتطبيق ، أو إذا كنت ترغب ببساطة في تشغيل تطبيق في حالة لمرة واحدة واترك نظامك دون أن يمس بعد ذلك.
على سبيل المثال ، يستخدم منشور المدونة كيفية إعداد مشروع Python المثالي pipx run
لبدء مشروع جديد مع CookieCutter ، وهي أداة تنشئ مشاريع من قوالب المشروع.
تتمثل الفائدة الجانبية اللطيفة في أنه لا يتعين عليك تذكر ترقية التطبيق لأن pipx run
ستقوم تلقائيًا بتشغيل إصدار حديث لك.
حسنًا ، دعنا نرى كيف يبدو هذا في الممارسة العملية!
pipx run APP [ARGS...]
سيؤدي ذلك إلى تثبيت الحزمة في دليل معزول مؤقت واستدعاء التطبيق. جربها:
> pipx run pycowsay moo
---
< moo >
---
^__^
(oo)_______
(__) )/
||----w |
|| ||
لاحظ أنك لا تحتاج إلى تنفيذ أي أوامر تثبيت لتشغيل التطبيق .
سيتم تمرير أي وسيطات بعد اسم التطبيق مباشرة إلى التطبيق:
> pipx run pycowsay these arguments are all passed to pycowsay!
-------------------------------------------
< these arguments are all passed to pycowsay! >
-------------------------------------------
^__^
(oo)_______
(__) )/
||----w |
|| ||
في بعض الأحيان يمكن أن تستهلك PIPX الوسائط المقدمة للتطبيق:
> pipx run pycowsay --py
usage: pipx run [-h] [--no-cache] [--pypackages] [--spec SPEC] [--verbose] [--python PYTHON]
[--system-site-packages] [--index-url INDEX_URL] [--editable] [--pip-args PIP_ARGS]
app ...
pipx run: error: ambiguous option: --py could match --pypackages, --python
لمنع هذا وضع Double Dash --
قبل التطبيق. سيجعل pipx لإعادة توجيه الحجج إلى الحرفي الصحيح للتطبيق:
> pipx run -- pycowsay --py
----
< --py >
----
^__^
(oo)_______
(__) )/
||----w |
|| ||
إعادة تشغيل نفس التطبيق سريع لأن PIPX يخبؤ البيئات الظاهرية على أساس كل تطبيق. تستمر ذاكرة التخزين المؤقت بضعة أيام فقط ، وعندما تنتهي صلاحيتها ، ستستخدم Pipx مرة أخرى أحدث إصدار من الحزمة. وبهذه الطريقة ، يمكنك التأكد من أنك تقوم دائمًا بتشغيل إصدار جديد من الحزمة دون الحاجة إلى الترقية يدويًا.
إذا كان اسم التطبيق لا يتطابق مع اسم الحزمة ، فيمكنك استخدام الوسيطة --spec
لتحديد اسم PACKAGE
، وتوفير APP
لتشغيله بشكل منفصل:
pipx run --spec PACKAGE APP
على سبيل المثال ، لا توفر حزمة Esptool قابلة للتنفيذ بنفس الاسم:
>> pipx run esptool
'esptool' executable script not found in package 'esptool'.
Available executable scripts:
esp_rfc2217_server.py - usage: 'pipx run --spec esptool esp_rfc2217_server.py [arguments?]'
espefuse.py - usage: 'pipx run --spec esptool espefuse.py [arguments?]'
espsecure.py - usage: 'pipx run --spec esptool espsecure.py [arguments?]'
esptool.py - usage: 'pipx run --spec esptool esptool.py [arguments?]'
يمكنك بدلاً من ذلك تشغيل المقالات التنفيذية التي توفرها هذه الحزمة باستخدام --spec
:
pipx run --spec esptool esp_rfc2217_server.py
pipx run --spec esptool espefuse.py
pipx run --spec esptool espsecure.py
pipx run --spec esptool esptool.py
لاحظ أن امتداد .py
ليس شيئًا يمكنك إلحاقه بالاسم القابل للتنفيذ. إنه جزء من الاسم القابل للتنفيذ ، على النحو المنصوص عليه في الحزمة. هذا يمكن أن يكون أي شيء. على سبيل المثال ، عند العمل مع حزمة Pymodbus:
>> pipx run pymodbus[repl]
'pymodbus' executable script not found in package 'pymodbus'.
Available executable scripts:
pymodbus.console - usage: 'pipx run --spec pymodbus pymodbus.console [arguments?]'
pymodbus.server - usage: 'pipx run --spec pymodbus pymodbus.server [arguments?]'
pymodbus.simulator - usage: 'pipx run --spec pymodbus pymodbus.simulator [arguments?]'
يمكنك تشغيل المناوب التنفيذية مثل هذا:
pipx run --spec pymodbus[repl] pymodbus.console
pipx run --spec pymodbus[repl] pymodbus.server
pipx run --spec pymodbus[repl] pymodbus.simulator
وسيطة PACKAGE
أعلاه هي في الواقع محدد المتطلبات. لذلك ، يمكنك أيضًا تحديد إصدارات محددة أو نطاقات الإصدار أو الإضافات. على سبيل المثال:
pipx run mpremote==1.20.0
pipx run --spec esptool==4.6.2 esptool.py
pipx run --spec 'esptool>=4.5' esptool.py
pipx run --spec 'esptool >= 4.5' esptool.py
لاحظ أنه يجب إرفاق بعض مواصفات المتطلبات في اقتباسات أو هربت.
يمكنك أيضًا الركض من مستودع GIT. هنا ، يتم استخدام black
كمثال.
pipx run --spec git+https://github.com/psf/black.git black
pipx run --spec git+https://github.com/psf/black.git@branch black # branch of your choice
pipx run --spec git+https://github.com/psf/black.git@ce14fa8b497bae2b50ec48b3bd7022573a59cdb1 black # git hash
pipx run --spec https://github.com/psf/black/archive/18.9b0.zip black # install a release
يمكنك تشغيل ملفات .py مباشرة أيضًا.
pipx run https://gist.githubusercontent.com/cs01/fa721a17a326e551ede048c5088f9e0f/raw/6bdfbb6e9c1132b1c38fdd2f195d4a24c540c324/pipx-demo.py
pipx is working!
هذا كل شيء! هذه هي أهم الأوامر التي يقدمها pipx
. لمشاهدة جميع وثائق PIPX ، قم بتشغيل pipx --help
أو رؤية المستندات.
كان Pipx مستوحى من Pipsi و NPX. تم إنشاؤه بواسطة تشاد سميث وكان لديه الكثير من المساعدة من المساهمين. تم إنشاء الشعار بواسطة @IrishMorales.
يتم الحفاظ على PIPX من قبل فريق من المتطوعين (بالترتيب الأبجدي)
القضايا وطلبات السحب هي بالتأكيد موضع ترحيب! تحقق من المساهمة في البدء. من المتوقع أن يتبع كل من يتفاعل مع مشروع PIPX عبر قاعدة الكود ، أو تعقب المشكلات ، أو غرف الدردشة ، أو غير ذلك مدونة سلوك PSF.