เอกสาร : 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 Release และคุณสามารถเรียกใช้งานด้วย Python 3.8+ Interpreter:
python pipx.pyz ensurepath
PIPX ได้รับการสนับสนุนล่วงหน้า
ความสมบูรณ์ของเชลล์มีให้โดยทำตามคำแนะนำที่พิมพ์ด้วยคำสั่งนี้:
pipx completions
สำหรับรายละเอียดเพิ่มเติมดูคำแนะนำการติดตั้ง
pipx
คืออะไร? PIPX เป็นเครื่องมือที่จะช่วยให้คุณติดตั้งและเรียกใช้แอปพลิเคชันผู้ใช้ปลายทางที่เขียนใน Python มันคล้ายกับ brew
ของ MacOS, NPX ของ JavaScript และ apt
ของ Linux
มันเกี่ยวข้องอย่างใกล้ชิดกับ PIP ในความเป็นจริงมันใช้ PIP แต่มุ่งเน้นไปที่การติดตั้งและจัดการแพ็คเกจ Python ที่สามารถเรียกใช้จากบรรทัดคำสั่งโดยตรงเป็นแอปพลิเคชัน
PIP เป็นตัวติดตั้งแพ็คเกจอเนกประสงค์สำหรับทั้งไลบรารีและแอพที่ไม่มีสภาพแวดล้อมที่แยกได้ PIPX ถูกสร้างขึ้นโดยเฉพาะสำหรับการติดตั้งแอปพลิเคชันเนื่องจากเพิ่มความโดดเดี่ยว แต่ยังทำให้แอพมีอยู่ในเชลล์ของคุณ: PIPX สร้างสภาพแวดล้อมที่แยกได้สำหรับแต่ละแอปพลิเคชันและแพ็คเกจที่เกี่ยวข้อง
PIPX ไม่ได้จัดส่งด้วย PIP แต่การติดตั้งมันมักจะเป็นส่วนสำคัญของการบูตระบบของคุณ
pipx
ติดตั้งแอพจากที่ไหนโดยค่าเริ่มต้น PIPX ใช้ดัชนีแพ็คเกจเดียวกับ PIP, PYPI PIPX ยังสามารถติดตั้งจากแหล่งข้อมูลอื่น ๆ ทั้งหมดเช่นไดเรกทอรีท้องถิ่นล้อเลื่อน URL GIT ฯลฯ
Python และ PYPI อนุญาตให้นักพัฒนาแจกจ่ายรหัสด้วย "จุดป้อนสคริปต์คอนโซล" จุดเริ่มต้นเหล่านี้ให้ผู้ใช้โทรเข้ารหัส Python จากบรรทัดคำสั่งทำหน้าที่เหมือนแอปพลิเคชันแบบสแตนด์อโลนได้อย่างมีประสิทธิภาพ
PIPX เป็นเครื่องมือในการติดตั้งและเรียกใช้แพ็คเกจที่มีแอปพลิเคชันหลายพันรายการในวิธีที่ปลอดภัยสะดวกและเชื่อถือได้ ในทางใดทางหนึ่งจะเปลี่ยนดัชนีแพ็คเกจ Python (PYPI) เป็นแอพสโตร์ขนาดใหญ่สำหรับแอปพลิเคชัน Python ไม่ใช่แพ็คเกจ Python ทั้งหมดที่มีจุดเข้า แต่หลายคนทำ
หากคุณต้องการทำให้แพ็คเกจของคุณเข้ากันได้กับ PIPX สิ่งที่คุณต้องทำคือเพิ่มจุดเข้าคอนโซลสคริปต์ หากคุณเป็นผู้ใช้บทกวีให้ใช้คำแนะนำเหล่านี้ หรือถ้าคุณใช้ฟักลองทำสิ่งนี้
pipx
ช่วยให้คุณสามารถ
install
สิ่งนี้รับประกันได้ว่าไม่มีความขัดแย้งในการพึ่งพาและการถอนการติดตั้ง!run
ที่ดีที่สุดคือ PIPX ทำงานด้วยสิทธิ์ผู้ใช้ปกติอย่าโทร sudo pip install
(คุณไม่ได้ทำอย่างนั้นใช่ไหม?)
pipx
คุณสามารถติดตั้งแอปพลิเคชันได้ทั่วโลกโดยใช้งาน
pipx install PACKAGE
สิ่งนี้จะสร้างสภาพแวดล้อมเสมือนจริงโดยอัตโนมัติติดตั้งแพ็คเกจและเพิ่มแอปพลิเคชันที่เกี่ยวข้องของแพ็คเกจ (จุดเข้า) ไปยังตำแหน่งบน PATH
ของคุณ ตัวอย่างเช่น pipx install pycowsay
ทำให้คำสั่ง pycowsay
พร้อมใช้งานทั่วโลก แต่ Sandboxes แพ็คเกจ 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 ที่กล่าวถึงข้างต้นในสภาพแวดล้อมชั่วคราวเพียงครั้งเดียวปล่อยให้ระบบของคุณไม่มีใครแตะต้องหลังจากนั้น
สิ่งนี้มีประโยชน์เมื่อคุณต้องการเรียกใช้แอพเวอร์ชันล่าสุด แต่ไม่จำเป็นต้องติดตั้งบนคอมพิวเตอร์ของคุณ
คุณอาจต้องการทำสิ่งนี้เมื่อคุณเริ่มต้นโครงการใหม่และต้องการตั้งค่าโครงสร้างไดเรกทอรีที่เหมาะสมเมื่อคุณต้องการดูข้อความช่วยเหลือของแอปพลิเคชันหรือหากคุณต้องการเรียกใช้แอพในกรณีเปิดตัวครั้งเดียว และปล่อยให้ระบบของคุณไม่มีใครแตะต้องหลังจากนั้น
ตัวอย่างเช่นบล็อกโพสต์วิธีการตั้งค่าโครงการ Perfon 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
เพื่อป้องกันไม่ให้ใส่สองเส้น --
ก่อนแอป มันจะทำให้ pipx ส่งต่ออาร์กิวเมนต์ไปยังคำต่อคำที่ถูกต้องไปยังแอปพลิเคชัน:
> pipx run -- pycowsay --py
----
< --py >
----
^__^
(oo)_______
(__) )/
||----w |
|| ||
การรันแอพเดียวกันอีกครั้งนั้นรวดเร็วเนื่องจาก PIPX Caches Environment เสมือนจริงแบบต่อแอป แคชเพียงไม่กี่วันและเมื่อพวกเขาหมดอายุ 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?]'
คุณสามารถเรียกใช้ Executables ที่แพ็คเกจนี้ให้โดยใช้ --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?]'
คุณสามารถเรียกใช้ Executables เช่นนี้:
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 ผ่าน CodeBase, Resition Tracker, ห้องแชทหรือคาดว่าจะปฏิบัติตามจรรยาบรรณของ PSF