A fabric utility for creating remote virtual environments, and installing and updating packages.
Project description
# fabvenv
A fabric utility for creating remote virtual environments, and installing and
updating packages.
The basic use case this covers is logging into a remote host, downloading
virtualenv.py, using it to create a virtual environment for a project,
including installing `pip`, and then installing packages, based on a
"requirements.txt" file.
## Installation
```
pip install fabvenv
```
## Usage
Here is how I define Fabric tasks to create a virtual environment, install
packages, add a directory to the `sys.path` of the python executable, etc.:
```
@task
def venv_create():
require('configured')
venv = fabvenv.Venv(config.venv, config.requirements)
if not venv.exists():
venv.create(config.system_python)
@task
def venv_install():
require('configured')
fabvenv.Venv(config.venv, config.requirements).install()
@task
def venv_upgrade():
require('configured')
fabvenv.Venv(config.venv, config.requirements).upgrade()
@task
def venv_freeze():
require('configured')
fabvenv.Venv(config.venv, config.requirements).freeze()
@task
def venv_remove():
require('configured')
venv = fabvenv.Venv(config.venv, config.requirements)
if venv.exists():
venv.remove()
@task
def venv_pth():
'''
Add the code directory to the virtualenv sys.path.
'''
require('configured')
fabvenv.Venv(config.venv, config.requirements).venv_pth([config.code])
```
## Contribute
Pull requests and issues are welcomed.
## Testing
The file `tests/fabfile.py` is a basic test of using fabric and fabvenv to
create a virtual environment, install a package, upgrade a package, and remove
the virtual environment.
This tests uses an installed version of `fabric` and `fabvenv`. To avoid
having the test conflict with any other installation of `fabvenv`, use a
virtual environment for testing.
Clone fabvenv:
git clone git@github.com:todddeluca/fabvenv.git
cd fabvenv
Install fabric and fabvenv into a virtual environment:
virtualenv ~/tmp/venv
~/tmp/venv/bin/pip install fabric
~/tmp/venv/bin/pip install -e .
The test also assumes that you can do passwordless (keypair) ssh into localhost
as `$USER`.
Run the tests as follows:
cd tests/
~/tmp/venv/bin/fab test_fabvenv
A fabric utility for creating remote virtual environments, and installing and
updating packages.
The basic use case this covers is logging into a remote host, downloading
virtualenv.py, using it to create a virtual environment for a project,
including installing `pip`, and then installing packages, based on a
"requirements.txt" file.
## Installation
```
pip install fabvenv
```
## Usage
Here is how I define Fabric tasks to create a virtual environment, install
packages, add a directory to the `sys.path` of the python executable, etc.:
```
@task
def venv_create():
require('configured')
venv = fabvenv.Venv(config.venv, config.requirements)
if not venv.exists():
venv.create(config.system_python)
@task
def venv_install():
require('configured')
fabvenv.Venv(config.venv, config.requirements).install()
@task
def venv_upgrade():
require('configured')
fabvenv.Venv(config.venv, config.requirements).upgrade()
@task
def venv_freeze():
require('configured')
fabvenv.Venv(config.venv, config.requirements).freeze()
@task
def venv_remove():
require('configured')
venv = fabvenv.Venv(config.venv, config.requirements)
if venv.exists():
venv.remove()
@task
def venv_pth():
'''
Add the code directory to the virtualenv sys.path.
'''
require('configured')
fabvenv.Venv(config.venv, config.requirements).venv_pth([config.code])
```
## Contribute
Pull requests and issues are welcomed.
## Testing
The file `tests/fabfile.py` is a basic test of using fabric and fabvenv to
create a virtual environment, install a package, upgrade a package, and remove
the virtual environment.
This tests uses an installed version of `fabric` and `fabvenv`. To avoid
having the test conflict with any other installation of `fabvenv`, use a
virtual environment for testing.
Clone fabvenv:
git clone git@github.com:todddeluca/fabvenv.git
cd fabvenv
Install fabric and fabvenv into a virtual environment:
virtualenv ~/tmp/venv
~/tmp/venv/bin/pip install fabric
~/tmp/venv/bin/pip install -e .
The test also assumes that you can do passwordless (keypair) ssh into localhost
as `$USER`.
Run the tests as follows:
cd tests/
~/tmp/venv/bin/fab test_fabvenv
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
fabvenv-0.2.1.tar.gz
(3.6 kB
view details)
File details
Details for the file fabvenv-0.2.1.tar.gz
.
File metadata
- Download URL: fabvenv-0.2.1.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8c73d27872cff3e253f16d87f6ecbbce8d350561d8851178d41401625a077fd |
|
MD5 | 4fd581e8aaf52ca943fdc3a2dd2b759a |
|
BLAKE2b-256 | d7c6a35f52745dd7cfbc4e96795da4e0c3c3d7d273586c7fd5a683acecbf5c04 |