barttc / pip-check Goto Github PK
View Code? Open in Web Editor NEWpip-check gives you a quick overview of all installed packages and their update status.
License: MIT License
pip-check gives you a quick overview of all installed packages and their update status.
License: MIT License
Please add support of new version on Python. When I type pip-check
this happens
# pip-check
Traceback (most recent call last):
File "C:\Python310\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Python310\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "C:\Python310\Scripts\pip-check.exe\__main__.py", line 4, in <module>
File "C:\Python310\lib\site-packages\pip_check\__init__.py", line 48, in <module>
import colorclass
File "C:\Python310\lib\site-packages\colorclass\__init__.py", line 11, in <module>
from colorclass.codes import list_tags # noqa
File "C:\Python310\lib\site-packages\colorclass\codes.py", line 4, in <module>
from collections import Mapping
ImportError: cannot import name 'Mapping' from 'collections' (C:\Python310\lib\collections\__init__.py)
user@user-desktop:~/Desktop$ pip-check
Traceback (most recent call last):
File "/home/user/.local/bin/pip-check", line 19, in
package_list = ListCommand().find_packages_latest_versions(options)
AttributeError: 'ListCommand' object has no attribute 'find_packages_latest_versions'
Not sure what's going on but it doesn't seem to work. Installed via pip.
$ pip-check
Loading packages....................................Traceback (most recent call last):
File "/Users/aeg/.pyenv/versions/suggest-ng/bin/pip-check", line 75, in <module>
table_data[i].append([colored_label, 'Version', 'Latest']),
IndexError: list index out of range
Python 3.5.1 (using pyenv
and pyenv-virtualenv
), pip freeze
chaussette==1.3.0
circus==0.13.0
colorclass==1.2.0
contextlib2==0.5.1
defusedxml==0.4.1
dj-database-url==0.4.0
Django==1.9.2
djangorestframework==3.3.2
flake8==2.5.2
greenlet==0.4.9
gunicorn==19.4.5
iowait==0.2
jedi==0.9.0
Markdown==2.6.5
mccabe==0.4.0
meinheld==0.5.8
oauthlib==1.0.3
pep8==1.7.0
pip-check==0.1
pipdeptree==0.5.0
psutil==3.4.2
psycopg2==2.6.1
pyflakes==1.0.0
PyJWT==1.4.0
python-social-auth==0.2.14
python3-openid==3.0.9
pyzmq==15.2.0
raven==5.10.2
requests==2.9.1
requests-oauthlib==0.6.0
six==1.10.0
terminaltables==2.1.0
tornado==4.3
ujson==1.35
My initial idea was to have a pip
GUI. I started diving into curses
but obviously curses
was invented to make people cry, so I deferred that in favor of a simple table for now.
The rough plan:
-r requirements.txt
argument, and if thats present:
--save
in npm.Hi Martin,
I love the minimalistic and simple UI of this package. So I have linked it as a recommended tool on the README of my own package called pip-date
. Please check it out and feel free to link back if you like it!
Cheers,
E:V:A
Hi,
I am using pip-check installed with pip3. I'm running currently this command pip-check -c /usr/bin/pip3
and I receive this :
Loading package versions...
Exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 143, in main
status = self.run(options, args)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/list.py", line 140, in run
packages = self.get_uptodate(packages, options)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/list.py", line 155, in get_uptodate
dist for dist in self.iter_packages_latest_infos(packages, options)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/list.py", line 155, in <listcomp>
dist for dist in self.iter_packages_latest_infos(packages, options)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/list.py", line 184, in iter_packages_latest_infos
all_candidates = finder.find_all_candidates(dist.key)
File "/usr/lib/python3/dist-packages/pip/_internal/index.py", line 530, in find_all_candidates
for page in self._get_pages(url_locations, project_name):
File "/usr/lib/python3/dist-packages/pip/_internal/index.py", line 675, in _get_pages
page = self._get_page(location)
File "/usr/lib/python3/dist-packages/pip/_internal/index.py", line 793, in _get_page
return _get_html_page(link, session=self.session)
File "/usr/lib/python3/dist-packages/pip/_internal/index.py", line 147, in _get_html_page
resp.raise_for_status()
File "/usr/share/python-wheels/requests-2.21.0-py2.py3-none-any.whl/requests/models.py", line 940, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://pypi.org/simple/unattended-upgrades/
And effectively the link https://pypi.org/simple/unattended-upgrades/ returns a 404 error. So is there an error from the Pypi side, or is related to pip-check ?
Moreover, if I'm running pip-check -c /usr/bin/pip3 -U
, I receive this :
Loading package versions...
Exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 143, in main
status = self.run(options, args)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/list.py", line 138, in run
packages = self.get_outdated(packages, options)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/list.py", line 149, in get_outdated
dist for dist in self.iter_packages_latest_infos(packages, options)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/list.py", line 150, in <listcomp>
if dist.latest_version > dist.parsed_version
TypeError: '>' not supported between instances of 'Version' and 'Version'
Is it related to my installation ? With pip3, I've installed pip-check 2.5.2. I don't have any pip
binary installed, only pip3
which is under /usr/bin/pip3
and in my PATH.
Is it related to the option -c
?
from pip
's help: --pre - Include pre-release and development versions. By default, pip only finds stable versions.
sudo pip install
installs packages to /usr/local
(/usr/local/lib/python3.8/dist-packages/
on current Ubuntu) to keep them separated from the system packages that are installed via the operating system package manager to /usr/lib/python3/dist-packages
.
There was already a request for this in #17 but only support for user packages was implemented.
Default pip version for Ubuntu (1.5.6) displays:
Traceback (most recent call last):
File "pip-check", line 28, in <module>
for package, update, source in package_list:
File "/mnt/terabyte/development/pip-check/compat/list.py", line 14, in find_packages_latest_versions
for dist in get_installed_distributions(
NameError: global name 'get_installed_distributions' is not defined
pip version 6.0.0 onwards display:
Loading packages....Traceback (most recent call last):
File "pip-check", line 76, in <module>
table_data[i].append([colored_label, 'Version', 'Latest']),
IndexError: list index out of range
Only versions 8.0.0 and 8.0.1 work without error.
Check that we have the minimum pip version installed and if not, display a proper error message.
See also the discussion in #19
I use pip-check on my CI server to stay up to date where my dependencies are. However the output does not look nice in my CI:
๏ฟฝ(0lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwqqqqqqqqqqqwqqqqqqqqqqqwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk๏ฟฝ(B
๏ฟฝ(0x๏ฟฝ(B Unchanged Packages ๏ฟฝ(0x๏ฟฝ(B Version ๏ฟฝ(0x๏ฟฝ(B Latest ๏ฟฝ(0x๏ฟฝ(B ๏ฟฝ(0x๏ฟฝ(B
๏ฟฝ(0tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqnqqqqqqqqqqqnqqqqqqqqqqqnqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu๏ฟฝ(B
๏ฟฝ(0x๏ฟฝ(B ecdsa ๏ฟฝ(0x๏ฟฝ(B 0.13 ๏ฟฝ(0x๏ฟฝ(B 0.13 ๏ฟฝ(0x๏ฟฝ(B https://pypi.python.org/pypi/ecdsa ๏ฟฝ(0x๏ฟฝ(B
๏ฟฝ(0x๏ฟฝ(B pycrypto ๏ฟฝ(0x๏ฟฝ(B 2.6.1 ๏ฟฝ(0x๏ฟฝ(B 2.6.1 ๏ฟฝ(0x๏ฟฝ(B https://pypi.python.org/pypi/pycrypto ๏ฟฝ(0x๏ฟฝ(B
๏ฟฝ(0x๏ฟฝ(B paramiko ๏ฟฝ(0x๏ฟฝ(B 1.16.0 ๏ฟฝ(0x๏ฟฝ(B 1.16.0 ๏ฟฝ(0x๏ฟฝ(B https://pypi.python.org/pypi/paramiko ๏ฟฝ(0x๏ฟฝ(B
๏ฟฝ(0x๏ฟฝ(B Pygments ๏ฟฝ(0x๏ฟฝ(B 2.1.3 ๏ฟฝ(0x๏ฟฝ(B 2.1.3 ๏ฟฝ(0x๏ฟฝ(B https://pypi.python.org/pypi/Pygments ๏ฟฝ(0x๏ฟฝ(B
๏ฟฝ(0x๏ฟฝ(B docutils ๏ฟฝ(0x๏ฟฝ(B 0.12 ๏ฟฝ(0x๏ฟฝ(B 0.12 ๏ฟฝ(0x๏ฟฝ(B https://pypi.python.org/pypi/docutils ๏ฟฝ(0x๏ฟฝ(B
an alternative output, maybe triggered by a switch --ascii-only
would be nice for that use case
e.g. django has a LTS version 1.8, I'd like to stay on 1.8.x, but I need to know if there is a new bugfix release 1.8.y (y>x)
To be able to separate system-wide packages (e.g. installed with apt/dnf/rpm/yum/whatever) from the user ones, since system packages have their own updating policy.
I can't seem to figure out why both django
and Django
as reqs never appear in the output of pip-check -r
.
requirements.txt
โฏ cat requirements.txt
black==19.3b0
boto3==1.10.2
django-compressor==2.3
django-heroku==0.3.1
django-sass-processor==0.7.4
django-storages==1.7.2
django==2.2.7
gunicorn==19.9.0
libsass==0.19.4
psycopg2-binary==2.8.4
python-postmark==0.5.1
sentry-sdk==0.13.1
setuptools==41.6.0
โฏ pip-check -r
Loading package versions...
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Minor Release Update โ Version โ Latest โ โ
โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ boto3 โ 1.10.2 โ 1.10.13 โ https://pypi.python.org/pypi/boto3 โ
โโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Unchanged Packages โ Version โ Latest โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ django-compressor โ 2.3 โ 2.3 โ https://pypi.python.org/pypi/django-compressor โ
โ django-heroku โ 0.3.1 โ 0.3.1 โ https://pypi.python.org/pypi/django-heroku โ
โ django-sass-processor โ 0.7.4 โ 0.7.4 โ https://pypi.python.org/pypi/django-sass-processor โ
โ django-storages โ 1.7.2 โ 1.7.2 โ https://pypi.python.org/pypi/django-storages โ
โ gunicorn โ 19.9.0 โ 19.9.0 โ https://pypi.python.org/pypi/gunicorn โ
โ libsass โ 0.19.4 โ 0.19.4 โ https://pypi.python.org/pypi/libsass โ
โ pip-check โ 2.5.2 โ 2.5.2 โ https://pypi.python.org/pypi/pip-check โ
โ psycopg2-binary โ 2.8.4 โ 2.8.4 โ https://pypi.python.org/pypi/psycopg2-binary โ
โ python-postmark โ 0.5.1 โ 0.5.1 โ https://pypi.python.org/pypi/python-postmark โ
โ sentry-sdk โ 0.13.1 โ 0.13.1 โ https://pypi.python.org/pypi/sentry-sdk โ
โ setuptools โ 41.6.0 โ 41.6.0 โ https://pypi.python.org/pypi/setuptools โ
โโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Any idea what I might be doing wrong here?
I like pip-check
a lot. Thanks.
I have locally a dev version 1.0.0
of pydicom and PyPI has 0.9.9
, so I guess it should not show this package in "Minor Release Update". See below.
Further vispy
is 0.5.0.dev0 where PyPI has got 0.4.0. But this one obviously is a harder nut because of parsing the "dev0" thing...
I am using python 3.5 and pip-check-0.2
.
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Minor Release Update โ Version โ Latest โ โ
โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ pydicom โ 1.0.0 โ 0.9.9 โ https://pypi.python.org/pypi/pydicom โ
โ vispy โ 0.5.0.dev0 โ 0.4.0 โ https://pypi.python.org/pypi/vispy โ
[ 53s] + python3 /home/abuild/rpmbuild/BUILDROOT/python-pip-check-2.6-2.1.x86_64/usr/bin/pip-check
[ 53s] Traceback (most recent call last):
[ 53s] File "/home/abuild/rpmbuild/BUILDROOT/python-pip-check-2.6-2.1.x86_64/usr/bin/pip-check", line 11, in <module>
[ 53s] load_entry_point('pip-check==2.6', 'console_scripts', 'pip-check')()
[ 53s] File "/home/abuild/rpmbuild/BUILDROOT/python-pip-check-2.6-2.1.x86_64/usr/lib/python3.4/site-packages/pip_check/__init__.py", line 293, in main
[ 53s] check_pip_version(options)
[ 53s] File "/home/abuild/rpmbuild/BUILDROOT/python-pip-check-2.6-2.1.x86_64/usr/lib/python3.4/site-packages/pip_check/__init__.py", line 115, in check_pip_version
[ 53s] cmd_response = subprocess.run(
[ 53s] AttributeError: 'module' object has no attribute 'run'
I have checked and callable-pip
works, but I suspect it isnt always reporting exit status correctly.
https://build.opensuse.org/package/show/home:jayvdb:py-new/python-callable-pip
Or use pip-api or pip-shims
I am running into an issue with the latest version of pip-check
> pip install pyglet==2.0.dev23 pip-check
> pip-check
Loading package versions...
Traceback (most recent call last):
File "~/test-project/.venv/bin/pip-check", line 8, in <module>
sys.exit(main())
โ โ <function main at 0x10e85fbe0>
โ <module 'sys' (built-in)>
File "~/test-project/.venv/lib/python3.10/site-packages/pip_check/__init__.py", line 298, in main
if current > latest:
File "~/test-project/.venv/lib/python3.10/site-packages/setuptools/_distutils/version.py", line 84, in __gt__
c = self._cmp(other)
โ โ LooseVersion ('2.0.0')
โ LooseVersion ('2.0.dev23')
File "~/test-project/.venv/lib/python3.10/site-packages/setuptools/_distutils/version.py", line 352, in _cmp
if self.version < other.version:
TypeError: '<' not supported between instances of 'str' and 'int'
I just stumbled upon https://pypi.python.org/pypi/pip_chill/ .
I think this could be a nice addition to be activated via a command line switch
It would be useful to have some basic sanity/smoke tests to verify that the package works. All pip related tools tend to be brittle, due to the way pip is developed/maintained.
e.g. I have created https://build.opensuse.org/package/show/home:jayvdb:py-new/python-pip-check , but I need some way to verify it works with the openSUSE Tumbleweed version of pip, otherwise I cant submit it to the openSUSE official collection of packages.
With pip==9.0.0 and pip-check==0.2 the following exception is raised:
Traceback (most recent call last):
File "/home/vagrant/.virtualenvs/foo/bin/pip-check", line 19, in <module>
package_list = ListCommand().find_packages_latest_versions(options)
AttributeError: 'ListCommand' object has no attribute 'find_packages_latest_versions'
pip==8.1.2 works fine, BTW. We can downgrade pip temporarily, but if anyone has any hints on how to resolve this please let me know.
Many thanks,
If you run something like
pip-check --cmd=pip3 --hide-unchanged --user -u
and there are some packages that can be updated, it will recommend the following command:
To update all minor releases run:
pip3 install -U package1 package2 package3
It makes sense to add --user
to the recommended program too, if --user
was specified for the pip-check itself, so the command will become
To update all minor releases run:
pip3 install -U --user package1 package2 package3
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.