A cookbook for managing python-related resources in a simple way
This is mostly a ripoff of the python cookbook, since it's both deprecated and has its resource names stolen by poise-python cookbook
backslasher_python_pip_installer: Makes sure a python envrionment has pip installed
backslasher_python_pip: A pip package
backslasher_python_virtualenv: A virtual environment
Should work on normal Linux boxes. Possibly on Windows.
I'm testing on:
- Ubuntu 14.04
- CentOS 6 (6.7)
- CentOS 7 (7.1)
['backslasher-python']['install_method']: How to install python. Defaults to
package. I'm currently not supoorting any other method.
The works - installs Python, pip and virtualenv.
Python is installed according to
Installs python using the repo's packages.
Provides both python runtime and Python development headers
Installs pip on the "regular" Python (the one available as
Installs the virtualenv pip package on the "regular" Python. Also makes sure pip is installed.
Installs pip on a specific python executable
python_path: Python binary to install pip on.
python, which should find the "system" python
Note: This action might overwrite the "primary" pip binary. There is no easy way to avoid this since there is no way to instruct
setuptools not to create "entry points". I'll happily accept a PR for fixing this.
Installs/removed/upgrades a pip package
install: Install the pip package
upgrade: Upgrade the pip package if it is uninstalled / has version mismatch. Will upgrade to latest by default.
remove: Remove the pip package if installed
python_path: Python binary to install on.
Not relevant if using
python, which should find the "system" python.
package_name: Pip package to install. Defaults to the resource's name
: Optional. Used to specify a URL to install the package from (e.g.pip install git+git://git.myproject.org/MyProject#egg=MyProject`)
version: Optional. Specifies a pip version to install
virtualenv: Optional. Specifies a virtualenv path to install/remove the pip package in
timeout: Time allotted for pip commands. Defaults to 900 seconds (15 min)
- ``user`: User to run the commands under
group: Group to run the commands under
environment: Hash of environment variables to pass to the pip commands
install_options: An array of arguments to pass to the pip commands when installing / upgrading packages
smart\_install: Uses a python script to check if package should be installed. Avoids running pip (and marking the resource as updated) "for nothing". Does not work in edge cases, so disabled by default.
Manages a python virtualenv
create: Creates the virtualenv
delete: Deletes the virtualenv
path: Location inside the filesystem of the virtualenv. Defaults to the resource's name
interpreter: Optional. Python binary used for venv. Defaults to the system python
owner: Optional. Owning user of the virtualenv
group: Optional. Owning group of the virtualenv
options: Optional. A string of arguments to pass the virtualenv creator
License and Authors
I'll be happy to accept contributions or to hear from you!