pip freeze แสดงแพ็คเกจที่ติดตั้ง แต่ฉันจะตรวจสอบ pypi ที่ล้าสมัยได้อย่างไร
pip freeze แสดงแพ็คเกจที่ติดตั้ง แต่ฉันจะตรวจสอบ pypi ที่ล้าสมัยได้อย่างไร
คำตอบ:
ตั้งแต่เวอร์ชัน 1.3 pip จะมีคำสั่งใหม่:
$ pip list --outdated
requests (Current: 1.1.0 Latest: 1.2.0)
ดูโพสต์นี้สำหรับข้อมูลเพิ่มเติม
ใช้ pip pip นี้:
https://github.com/dgladkov/pip
ซึ่งทำสิ่งที่คุณต้องการโดยใช้คำสั่งนี้:
$ pip list --outdated
สิ่งที่เป็นฉันไม่เคยอัพเกรดแพ็กเกจทั้งหมด ผมอัพเกรดเพียงสิ่งที่ฉันต้องการเพราะโครงการอาจแบ่ง
เนื่องจากไม่มีวิธีที่ง่ายในการอัปเกรดแพคเกจตามแพ็คเกจและอัปเดตไฟล์ requirements.txt ฉันจึงเขียนpip-upgraderนี้requirements.txt
ซึ่งอัปเดตเวอร์ชันในไฟล์ของคุณสำหรับแพ็คเกจที่เลือก (หรือแพ็คเกจทั้งหมด)
การติดตั้ง
pip install pip-upgrader
การใช้
เปิดใช้งาน virtualenv ของคุณ (สำคัญเพราะมันจะติดตั้งแพ็คเกจอัพเกรดรุ่นใหม่ใน virtualenv ปัจจุบันด้วย)
cd
ลงในไดเรกทอรีโครงการของคุณแล้วเรียกใช้:
pip-upgrade
การใช้งานขั้นสูง
หากวางข้อกำหนดไว้ในตำแหน่งที่ไม่ได้มาตรฐานให้ส่งเป็นอาร์กิวเมนต์:
pip-upgrade path/to/requirements.txt
หากคุณรู้อยู่แล้วว่าต้องการอัพเกรดแพ็คเกจใดเพียงส่งเป็นอาร์กิวเมนต์:
pip-upgrade -p django -p celery -p dateutil
หากคุณต้องการอัปเกรดเป็นรุ่นก่อนวางจำหน่าย / หลังวางจำหน่ายให้เพิ่ม--prerelease
อาร์กิวเมนต์ในคำสั่งของคุณ
การเปิดเผยแบบเต็ม: ฉันเขียนแพ็คเกจนี้
บางที pip-tools มีอยู่ที่https://github.com/nvie/pip-toolsอาจช่วยให้คุณบรรลุสิ่งที่คุณต้องการ?
ตัวอย่างจาก README:
$ pip-review --interactive
requests==0.14.0 available (you have 0.13.2)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y
...
redis==2.6.2 available (you have 2.4.9)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit n
rq==0.3.2 available (you have 0.3.0)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y
...
คล้ายกับpip list --outdated
แต่อัปเดตrequirements.txt
ไฟล์:
pur -r requirements.txt
PyPi: https://pypi.python.org/pypi/pur
GitHub: https://github.com/alanhamlett/pip-update-requirements