Version rapide (vérification de l'emballage uniquement)
Le code ci-dessous appelle le package avec une version non disponible comme pip install package_name==random
. L'appel renvoie toutes les versions disponibles. Le programme lit la dernière version.
Le programme s'exécute ensuite pip show package_name
et obtient la version actuelle du package.
S'il trouve une correspondance, il renvoie True, sinon False.
Il s'agit d'une option fiable étant donné qu'elle repose sur 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
Le code suivant appelle 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