Pip requirements.txt generator based on imports in project
Project description
===============================
``pipreqs`` - Generate requirements.txt file for any project based on imports
===============================
.. image:: https://img.shields.io/travis/bndr/pipreqs.svg
:target: https://travis-ci.org/bndr/pipreqs
.. image:: https://img.shields.io/pypi/v/pipreqs.svg
:target: https://pypi.python.org/pypi/pipreqs
.. image:: https://img.shields.io/coveralls/bndr/pipreqs.svg
:target: https://coveralls.io/r/bndr/pipreqs
.. image:: https://img.shields.io/pypi/l/pipreqs.svg
:target: https://pypi.python.org/pypi/pipreqs
Installation
------------
::
pip install pipreqs
Usage
-----
::
Usage:
pipreqs [options] <path>
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
--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.
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.8
--------------------
* Implement '--clean' and '--diff' (kxrd)
* Exclude concurrent{,.futures} from stdlib if py2 (kxrd)
0.4.7
--------------------
* BUG: remove package/version duplicates
* Style: pep8
0.4.5
---------------------
* 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.
``pipreqs`` - Generate requirements.txt file for any project based on imports
===============================
.. image:: https://img.shields.io/travis/bndr/pipreqs.svg
:target: https://travis-ci.org/bndr/pipreqs
.. image:: https://img.shields.io/pypi/v/pipreqs.svg
:target: https://pypi.python.org/pypi/pipreqs
.. image:: https://img.shields.io/coveralls/bndr/pipreqs.svg
:target: https://coveralls.io/r/bndr/pipreqs
.. image:: https://img.shields.io/pypi/l/pipreqs.svg
:target: https://pypi.python.org/pypi/pipreqs
Installation
------------
::
pip install pipreqs
Usage
-----
::
Usage:
pipreqs [options] <path>
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
--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.
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.8
--------------------
* Implement '--clean' and '--diff' (kxrd)
* Exclude concurrent{,.futures} from stdlib if py2 (kxrd)
0.4.7
--------------------
* BUG: remove package/version duplicates
* Style: pep8
0.4.5
---------------------
* 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
Release history Release notifications | RSS feed
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.4.8.tar.gz
(36.1 kB
view details)
Built Distribution
File details
Details for the file pipreqs-0.4.8.tar.gz
.
File metadata
- Download URL: pipreqs-0.4.8.tar.gz
- Upload date:
- Size: 36.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb82383bc903c03c17486fa128f963ccb606f15b67fb720041165bc8950a4538 |
|
MD5 | 46ab833fea5e0bc1bf03c713ee8a5954 |
|
BLAKE2b-256 | cbd2773745cb0fafb969efce863a88bfe76e36c0147acc548d7ffac27fca6734 |
Provenance
File details
Details for the file pipreqs-0.4.8-py2.py3-none-any.whl
.
File metadata
- Download URL: pipreqs-0.4.8-py2.py3-none-any.whl
- Upload date:
- Size: 23.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c88c53f8e76c86729aadd5faa23dce876ae5e40341fa6946b32110391964933 |
|
MD5 | 9fc5d78081f2eae263312be6f93b9b70 |
|
BLAKE2b-256 | fa9ec7470533ff80ac446ca1f21a6e2a482dbbe1e37f66e8d8a91746b2e18d6e |