A wrapper for pip to save packages in requirements files similar to npm.
There are better alternatives to pip (like Pipenv), but this was created for those who want or need to continue using pip. For example, those who collaborate in projects that use pip requirements files.
$ pip install pipw
pipw (install|uninstall) [-e] <package>... [options]
-s, --save Save packages to the requirements file. This is default unless --no-save. Packages are saved in requirements.txt unless a custom configuration is used. -n, --no-save Prevent save packages to the requirements file. --config <path> Pass a custom config file. By default it looks for a .pipwrc file in the directory where the command is executed, or in the user's home directory. -m, --env <name> Save in a environment previously declared in the config file. --save-to <path> Save to a custom file. --no-detect-version Do not detect installed version, and save package version only if the version is passed. --help Show this message and exit.
All pip commands and options are still available.
You can create a
.pipwrc file to use a custom configuration. By default
it looks for the file in the directory where the command is executed, or in the
user's home directory. You can also pass a custom file to the
Example of a config file:
requirements: requirements.txt specifier: ~= detect_version: true envs: dev: requirements/dev.txt
As you can see, you can set environment files in the configuration file:
requirements: requirements/prod.txt envs: dev: requirements/dev.txt test: requirements/test.txt
Use the -m (or --env) option to save the packages in an environment file:
$ pipw install pytest -m test
If no environment is passed, the value defined in requirements are used by default. If this value is not defined, a requirements.txt file is used by default. These files are created automatically if they do not exist.
The uninstall command will remove the package in all files, unless the -m option is passed.
Tests are in
tests/. To run the tests use one of these commands:
$ make tests $ make wip-tests $ make review-tests
You can also pass the environment. For example:
$ make tests env=py35
- Daniel Ramos