Skip to main content

Pip requirements.txt generator based on imports in project

Project description

https://img.shields.io/travis/bndr/pipreqs.svg https://img.shields.io/pypi/v/pipreqs.svg https://codecov.io/gh/bndr/pipreqs/branch/master/graph/badge.svg?token=0rfPfUZEAX https://img.shields.io/pypi/l/pipreqs.svg

Installation

pip install pipreqs

Obs.: if you don’t want support for jupyter notebooks, you can install pipreqs without the dependencies that give support to it. To do so, run:

pip install --no-deps pipreqs
pip install yarg==0.1.9 docopt==0.6.2

Usage

Usage:
    pipreqs [options] [<path>]

Arguments:
    <path>                The path to the directory containing the application files for which a requirements file
                          should be generated (defaults to the current working directory)

Options:
    --use-local           Use ONLY local package info instead of querying PyPI
    --pypi-server <url>   Use custom PyPi server
    --proxy <url>         Use Proxy, parameter will be passed to requests library. You can also just set the
                          environments parameter in your terminal:
                          $ export HTTP_PROXY="http://10.10.1.10:3128"
                          $ export HTTPS_PROXY="https://10.10.1.10:1080"
    --debug               Print debug information
    --ignore <dirs>...    Ignore extra directories, each separated by a comma
    --no-follow-links     Do not follow symbolic links in the project
    --encoding <charset>  Use encoding parameter for file open
    --savepath <file>     Save the list of requirements in the given file
    --print               Output the list of requirements in the standard output
    --force               Overwrite existing requirements.txt
    --diff <file>         Compare modules in requirements.txt to project imports
    --clean <file>        Clean up requirements.txt by removing modules that are not imported in project
    --mode <scheme>       Enables dynamic versioning with <compat>, <gt> or <non-pin> schemes
                          <compat> | e.g. Flask~=1.1.2
                          <gt>     | e.g. Flask>=1.1.2
                          <no-pin> | e.g. Flask
    --scan-notebooks      Look for imports in jupyter notebook files.

Example

$ pipreqs /home/project/location
Successfully saved requirements file in /home/project/location/requirements.txt

Contents of requirements.txt

wheel==0.23.0
Yarg==0.1.9
docopt==0.6.2

Why not pip freeze?

  • pip freeze only saves the packages that are installed with pip install in your environment.

  • pip freeze saves all packages in the environment including those that you don’t use in your current project (if you don’t have virtualenv).

  • and sometimes you just need to create requirements.txt for a new project without installing modules.

History

0.4.11 (2020-03-29)

  • Implement ‘–mode’ (Jake Teo, Jerome Chan)

0.4.8 (2017-06-30)

  • Implement ‘–clean’ and ‘–diff’ (kxrd)

  • Exclude concurrent{,.futures} from stdlib if py2 (kxrd)

0.4.7 (2017-04-20)

  • BUG: remove package/version duplicates

  • Style: pep8

0.4.5 (2016-12-13)

  • Fixed the –pypi-server option

0.4.4 (2016-07-14)

  • Remove Spaces in output

  • Add package to output even without version

0.4.2 (2016-02-10)

  • Fix duplicated lines in requirements.txt (Dmitry Pribysh)

0.4.1 (2016-02-05)

  • Added ignore option (Nick Rhinehart)

0.4.0 (2016-01-28)

  • Walk Abstract Syntax Tree to find imports (Kay Sackey)

0.3.9 (2016-01-20)

  • Fix regex for docstring comments (#35)

0.3.8 (2016-01-12)

  • Add more package mapping

  • fix(pipreqs/mapping): remove pylab reference to matplotlib

  • Remove comments “”” before going through imports

  • Update proxy documentation

0.3.1 (2015-10-20)

  • fixed lint warnings (EJ Lee)

  • add –encoding parameter for open() (EJ Lee)

  • support windows directory separator (EJ Lee)

0.3.0 (2015-09-29)

  • Add –proxy option

  • Add –pypi-server option

0.2.9 (2015-09-24)

  • Ignore irreverent directory when generating requirement.txt (Lee Wei)

  • Modify logging level of “Requirement.txt already exists” to warning (Lee Wei)

0.2.8 (2015-05-11)

  • Add –force option as a protection for overwrites

0.2.6 (2015-05-11)

  • Fix exception when ‘import’ is used inside package name #17

  • Add more tests

0.2.5 (2015-05-11)

  • Fix exception when ‘import’ is used in comments #17

  • Fix duplicate entries in requirements.txt

0.2.4 (2015-05-10)

  • Refactoring

  • fix “import as”

0.2.3 (2015-05-09)

  • Fix multiple alias imports on the same line (Tiago Costa)

  • More package mappings

0.2.2 (2015-05-08)

  • Add ImportName -> PackageName mapping

  • More tests

0.2.1 (2015-05-08)

  • Fix for TypeError for implicit conversion

0.2.0 (2015-05-06)

  • Add –use-local option

  • Exclude relative imports. (Dongwon Shin)

  • Use “latest_release_id” instead of “release_ids[-1]” (Dongwon Shin)

0.1.9 (2015-05-01)

  • Output tuning (Harri Berglund)

  • Use str.partition() to simplify the logic (cclaus)

0.1.8 (2015-04-26)

  • Fixed problems with local imports (Dongwon Shin)

  • Fixed problems with imports with ‘as’ (Dongwon Shin)

  • Fix indentation, pep8 Styling. (Michael Borisov)

  • Optimize imports and adding missing import for sys module. (Michael Borisov)

0.1.7 (2015-04-24)

  • Add more assertions in tests

  • Add more verbose output

  • Add recursive delete to Makefile clean

  • Update Readme

0.1.6 (2015-04-22)

  • py3 print function

0.1.5 (2015-04-22)

  • Add Readme, Add Examples

  • Add Stdlib into package

0.1.1 (2015-04-22)

  • Fix regex matching for imports

  • Release on Pypi

0.1.0 (2015-04-22)

  • First release on Github.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pipreqs-0.5.0.tar.gz (35.2 kB view details)

Uploaded Source

Built Distribution

pipreqs-0.5.0-py3-none-any.whl (33.5 kB view details)

Uploaded Python 3

File details

Details for the file pipreqs-0.5.0.tar.gz.

File metadata

  • Download URL: pipreqs-0.5.0.tar.gz
  • Upload date:
  • Size: 35.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.6 Linux/6.5.13-7-MANJARO

File hashes

Hashes for pipreqs-0.5.0.tar.gz
Algorithm Hash digest
SHA256 f33298d235ff76def369cb9a3594d084d9badc70cebba1e8cb271fcd4fdc0183
MD5 0af8cb2f51962f1909226277a68959ab
BLAKE2b-256 124c0a335b1b70c7e1821140ac6f884b51d47f049bcb600fa19bb374922f73aa

See more details on using hashes here.

File details

Details for the file pipreqs-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: pipreqs-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 33.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.6 Linux/6.5.13-7-MANJARO

File hashes

Hashes for pipreqs-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0809f6217028e35785f80e90217e18043e58c99ba28175e28320f9074dd03874
MD5 f2fea85d7f0a06ef51c42cd99e7052d2
BLAKE2b-256 3638cc1343c3a63655e18328e51e00c6e6851be648f1b8babffc5131f1b9f226

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page