Find which version of package is installed with pip

前端 未结 15 2097
死守一世寂寞
死守一世寂寞 2020-12-04 04:43

Using pip, is it possible to figure out which version of a package is currently installed?

I know about pip install XYZ --upgrade but I am wondering if

相关标签:
15条回答
  • 2020-12-04 05:15

    Pip 1.3 now also has a list command:

    $ pip list
    argparse (1.2.1)
    pip (1.5.1)
    setuptools (2.1)
    wsgiref (0.1.2)
    
    0 讨论(0)
  • 2020-12-04 05:15
    import pkg_resources
    packages = [dist.project_name for dist in pkg_resources.working_set]
    try:
       for count, item in enumerate(packages):
          print(item, pkg_resources.get_distribution(item).version)
    except:
        pass here
    

    The indentations might not be perfect. The reason I am using a Try- Except block is that few library names will throw errors because of parsing the library names to process the versions. even though packages variable will contain all the libraries install in your environment.

    0 讨论(0)
  • 2020-12-04 05:16

    You can also install yolk and then run yolk -l which also gives some nice output. Here is what I get for my little virtualenv:

    (venv)CWD> /space/vhosts/pyramid.xcode.com/venv/build/unittest 
    project@pyramid 43> yolk -l
    Chameleon       - 2.8.2        - active 
    Jinja2          - 2.6          - active 
    Mako            - 0.7.0        - active 
    MarkupSafe      - 0.15         - active 
    PasteDeploy     - 1.5.0        - active 
    Pygments        - 1.5          - active 
    Python          - 2.7.3        - active development (/usr/lib/python2.7/lib-dynload)
    SQLAlchemy      - 0.7.6        - active 
    WebOb           - 1.2b3        - active 
    account         - 0.0          - active development (/space/vhosts/pyramid.xcode.com/project/account)
    distribute      - 0.6.19       - active 
    egenix-mx-base  - 3.2.3        - active 
    ipython         - 0.12         - active 
    logilab-astng   - 0.23.1       - active 
    logilab-common  - 0.57.1       - active 
    nose            - 1.1.2        - active 
    pbkdf2          - 1.3          - active 
    pip             - 1.0.2        - active 
    pyScss          - 1.1.3        - active 
    pycrypto        - 2.5          - active 
    pylint          - 0.25.1       - active 
    pyramid-debugtoolbar - 1.0.1        - active 
    pyramid-tm      - 0.4          - active 
    pyramid         - 1.3          - active 
    repoze.lru      - 0.5          - active 
    simplejson      - 2.5.0        - active 
    transaction     - 1.2.0        - active 
    translationstring - 1.1          - active 
    venusian        - 1.0a3        - active 
    waitress        - 0.8.1        - active 
    wsgiref         - 0.1.2        - active development (/usr/lib/python2.7)
    yolk            - 0.4.3        - active 
    zope.deprecation - 3.5.1        - active 
    zope.interface  - 3.8.0        - active 
    zope.sqlalchemy - 0.7          - active 
    
    0 讨论(0)
  • 2020-12-04 05:20

    You can use the grep command to find out.

    pip show <package_name>|grep Version
    

    Example:

    pip show urllib3|grep Version
    

    will show only the versions.

    Metadata-Version: 2.0
    Version: 1.12

    0 讨论(0)
  • 2020-12-04 05:22

    As of pip 1.3, there is a pip show command.

    $ pip show Jinja2
    ---
    Name: Jinja2
    Version: 2.7.3
    Location: /path/to/virtualenv/lib/python2.7/site-packages
    Requires: markupsafe
    

    In older versions, pip freeze and grep should do the job nicely.

    $ pip freeze | grep Jinja2
    Jinja2==2.7.3
    
    0 讨论(0)
  • and with --outdated as an extra argument, you will get the Current and Latest versions of the packages you are using :

    $ pip list --outdated
    distribute (Current: 0.6.34 Latest: 0.7.3)
    django-bootstrap3 (Current: 1.1.0 Latest: 4.3.0)
    Django (Current: 1.5.4 Latest: 1.6.4)
    Jinja2 (Current: 2.6 Latest: 2.8)
    

    So combining with AdamKG 's answer :

    $ pip list --outdated | grep Jinja2
    Jinja2 (Current: 2.6 Latest: 2.8)
    

    Check pip-tools too : https://github.com/nvie/pip-tools

    0 讨论(0)
提交回复
热议问题