pipup - Better requirements.txt management
So why pipup you ask? It's a silly small utility, but it solves some real issues I have on a daily basis. The 3 most common things I need to do with pip are:
- See if a package is installed and, if so, which version is installed
- Install a package and then save the installed version info to requirements.txt
- Upgrade a package and change the entry in requirements.txt
Sadly, pip doesn't help us here so this is why I've created pipup. Running just
pipup <package name> or pipup -U <package name> just does what I want. No
more forgetting to include or update a requirements.txt entry for me!
Installation
pipup is installed via pip:
pip install pipup
Usage
Using pipup is easy:
$ pipup Django
If Django is already installed, pipup will display the current version for you like this:
$ pipup Django
Looking for 'Django'
Already installed:
Django==1.9.7
No changes to save, skipping save.
If Django isn't installed, pipup will install it and save the pinned version of the package to the requirements.txt in your current directory:
$ pipup Django
Looking for 'Django'
Installing 'Django'...
Django==1.9.7
Changes saved to /Users/frank/work/src/pipup/requirements.txt
If we have an older version of Django installed, say Django==1.8.4 we can use
the --upgrade or -U option to upgrade Django and update our requirements:
$ pipup -U Django
Looking for 'Django'
Already installed:
Django==1.8.4
Upgrading:
Django==1.9.7
Changes saved to /Users/frank/work/src/pipup/requirements.txt
Detailed options
`--upgrade` or `-U` install or upgrade the requested package(s)
`--skip` or `-s` install or upgrade, but don't save the changes into your requirements file
`--requirements` or `-r` path to the requirements file you wish to update
NOTE: Originally we tried to be smart and walk your file system backwards until we found a requirements.txt, but this can easily write the pip changes to a random requirements.txt on your system if you use a certain, fairly common, directory structure for your Python projects. To avoid this confusion, we're going to be explicit and require that you run pipup from the top of a project or specify the requirements path directly yourself.
Need help?
REVSYS can help with your Python, Django, and infrastructure projects. If you have a question about this project, please open a GitHub issue. If you love us and want to keep track of our goings-on, here's where you can find us online:
Metadata
Release files for pipup 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pipup-0.3.1.tar.gz | 5.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pipup-0.3.1-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 13.3 kB
Release files / pipup-0.3.1.tar.gz
| Download URL | pipup-0.3.1.tar.gz |
|---|---|
| Size | 5.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
280053fb5bdf5a03492b2f2751e19b469953250f674a4d00744949528724acd7
|
|
BLAKE2b-256 checksum How to use checksums |
45fe42115b8aeb06e181995e85651e23431021d228b43601da26622ae65cb315
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
|
Release files / pipup-0.3.1-py2.py3-none-any.whl
| Download URL | pipup-0.3.1-py2.py3-none-any.whl |
|---|---|
| Size | 7.7 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
0a3160fcf7f12701ce0b13949c0d5fca4fc058a6ed145477ab970b64211c4348
|
|
BLAKE2b-256 checksum How to use checksums |
2c73693c1430d40e91a614a05fae5525d818d939903930437306c9708c625b5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
|