Phiên bản nhanh (Chỉ kiểm tra gói)
Mã dưới đây gọi gói với một phiên bản không có sẵn như pip install package_name==random
. Cuộc gọi trả về tất cả các phiên bản có sẵn. Chương trình đọc phiên bản mới nhất.
Chương trình sau đó chạy pip show package_name
và lấy phiên bản hiện tại của gói.
Nếu tìm thấy kết quả khớp, nó trả về True, ngược lại là Sai.
Đây là một lựa chọn đáng tin cậy cho rằng nó đứng trên pip
import subprocess
import sys
def check(name):
latest_version = str(subprocess.run([sys.executable, '-m', 'pip', 'install', '{}==random'.format(name)], capture_output=True, text=True))
latest_version = latest_version[latest_version.find('(from versions:')+15:]
latest_version = latest_version[:latest_version.find(')')]
latest_version = latest_version.replace(' ','').split(',')[-1]
current_version = str(subprocess.run([sys.executable, '-m', 'pip', 'show', '{}'.format(name)], capture_output=True, text=True))
current_version = current_version[current_version.find('Version:')+8:]
current_version = current_version[:current_version.find('\\n')].replace(' ','')
if latest_version == current_version:
return True
else:
return False
Đoạn mã sau gọi cho pip list --outdated
:
import subprocess
import sys
def check(name):
reqs = subprocess.check_output([sys.executable, '-m', 'pip', 'list','--outdated'])
outdated_packages = [r.decode().split('==')[0] for r in reqs.split()]
return name in outdated_packages