pigar
A fantastic tool to generate requirements.txt for your Python project, and more than that.
- Generating requirements.txt for Python project.
- Handling the difference between different Python versions.
- Jupyter notebook (
*.ipynb
) support. - Including the import statements from
exec
/eval
, doctest of docstring, etc.
- Searching packages by import name.
- Checking the latest versions for Python project.
NOTE: Pipenv or other tools is recommended for improving your development flow.
Installation
pigar
can run on Python 2.7.+ and 3.2+.
To install it with pip
, use:
[sudo] pip install pigar
To install it with conda
, use:
conda install -c conda-forge pigar
To get the newest code from GitHub:
pip install git+https://github.com/damnever/pigar.git@[master or other branch] --upgrade
Usage
-
pigar
can consider all kinds of complicated situations. For example, this project has py2_requirements.txt and py3_requirements.txt for different Python versions(see the above GIF).# Generate requirements.txt for current directory. $ pigar # Generating requirements.txt for given directory in given file. $ pigar -p ../dev-requirements.txt -P ../
pigar
can list all files which referenced the package(the line numbers for Jupyter notebook may be a bit confusing), for example:# project/foo.py: 2,3 # project/bar/baz.py: 2,7,8,9 foobar == 3.3.3
If the requirements.txt is overwritten,
pigar
will show the difference between the old and the new. -
If you do not know the import name that belongs to a specific package (more generally, does
Import Error: xxx
drive you crazy?), such asbs4
which may come frombeautifulsoup4
orMySQLdb
which could come fromMySQL_Python
, try searching for it:$ pigar -s bs4 MySQLdb
-
Checking for the latest version:
# Specify a requirements file. $ pigar -c ./requirements.txt # Or, you can let pigar searching all *requirements.txt in the current directory # level by itself. If not found, pigar will generate a new requirements.txt # for the current project, then check for the latest versions. $ pigar -c
-
More:
pigar --help