Update README

This commit is contained in:
Vineet 2014-02-05 22:59:38 +05:30
parent 768347fa97
commit 50e84a2a71
1 changed files with 66 additions and 19 deletions

View File

@ -1,15 +1,27 @@
pipdeptree
==========
`pipdeptree` is a command line utility to show the installed python
packages as a dependency tree. It works pretty much like `pip
freeze`. Since `pip freeze` shows all dependencies as a flat list,
``pipdeptree`` is a command line utility for displaying the python
packages installed in an environment in form of a dependency
tree. Since ``pip freeze`` shows all dependencies as a flat list,
finding out which are the top level packages and which packages do
they depend on requires some effort. This utility tries to solve this
problem.
To give you a brief idea here is the output of `pipdeptree` compared
to `pip freeze`
Installation
------------
.. code-block:: bash
$ pip install pipdeptree
Usage and examples
------------------
To give you a brief idea here is the output of ``pipdeptree`` compared
with ``pip freeze``:
.. code-block:: bash
@ -29,40 +41,75 @@ to `pip freeze`
slugify==0.0.1
wsgiref==0.1.2
And now see what ``pipdeptree`` outputs,
.. code-block:: bash
$ python pipdeptree.py
$ pipdeptree
wsgiref==0.1.2
argparse==1.2.1
psycopg2==2.5.2
flask-script==0.6.6
- flask [installed: 0.10.1]
- werkzeug [required: >=0.7, installed: 0.9.4]
- jinja2 [required: >=2.4, installed: 2.7.2]
Flask-Script==0.6.6
- Flask [installed: 0.10.1]
- Werkzeug [required: >=0.7, installed: 0.9.4]
- Jinja2 [required: >=2.4, installed: 2.7.2]
- markupsafe [installed: 0.18]
- itsdangerous [required: >=0.21, installed: 0.23]
alembic==0.6.2
- sqlalchemy [required: >=0.7.3, installed: 0.9.1]
- mako [installed: 0.9.1]
- markupsafe [required: >=0.9.2, installed: 0.18]
- SQLAlchemy [required: >=0.7.3, installed: 0.9.1]
- Mako [installed: 0.9.1]
- MarkupSafe [required: >=0.9.2, installed: 0.18]
slugify==0.0.1
redis==2.9.1
Installation
------------
If you wish to track only the top level packages in your
``requirements.txt`` file, you could use grep as follows,
This library is still being worked upon and hence, yet to be published
on pypi
.. code-block:: bash
$ pipdeptree | grep -P '^[\w0-9\-=.]+'
wsgiref==0.1.2
argparse==1.2.1
psycopg2==2.5.2
Flask-Script==0.6.6
alembic==0.6.2
slugify==0.0.1
redis==2.9.1
$ pipdeptree.py | grep -P '^[\w0-9\-=.]+' > requirements.txt
Usage
-----
:todo
.. code-block:: bash
$ pipdeptree -h
usage: pipdeptree [-h] [-a] [-l]
Dependency tree of the installed python packages
optional arguments:
-h, --help show this help message and exit
-a, --all list all deps at top level
-l, --local-only list only the installations local to the current
virtualenv, if in a virtualenv
Known Issues
------------
One thing you might have noticed already is that ``flask`` is shown as
a dependency of ``flask-script``, which although correct, sounds a bit
odd. ``flask-script`` is being used here *because* we are using
``flask`` and not the other way around. Same with ``sqlalchemy`` and
``alembic``. I haven't yet thought about a possible solution to this!
(May be if libs that are "extensions" could be distinguished from the
ones that are "dependencies". Suggestions are welcome.)
License
-------
MIT
MIT (See LICENSE)