virtualenv-api - an API for virtualenv
virtualenv is a tool to create isolated Python environments. Unfortunately, it does not expose a native Python API. This package aims to provide an API in the form of a wrapper around virtualenv.
It can be used to create and delete environments and perform package management inside the environment.
Full support is provided for Python 2.7 and Python 3.3+.
Installation
The latest stable release is available on PyPi:
$ pip install virtualenv-api
Please note that the distribution is named virtualenv-api, yet the Python package is named virtualenvapi.
Alternatively, you may fetch the latest version from git:
$ pip install git+https://github.com/sjkingo/virtualenv-api.git
Examples
To begin managing an environment (it will be created if it does not exist):
from virtualenvapi.manage import VirtualEnvironment
env = VirtualEnvironment('/path/to/environment/name')
You may also specify the Python interpreter to use in this environment by passing the python argument to the class constructor (new in 2.1.3):
env = VirtualEnvironment('/path/to/environment/name', python='python3')
If you have already activated a virtualenv and wish to operate on it, simply call VirtualEnvironment with no arguments:
env = VirtualEnvironment()
New in 2.1.7:
An optional argument readonly may be provided (defaults to False) that will prevent all operations that could potentially modify the environment.
Check if the mezzanine package is installed:
>>> env.is_installed('mezzanine')
False
Install the latest version of the mezzanine package:
>>> env.install('mezzanine')
A wheel of the latest version of the mezzanine package (new in 2.1.4):
>>> env.wheel('mezzanine')
Install version 1.4 of the django package (this is pip’s syntax):
>>> env.install('django==1.4')
Upgrade the django package to the latest version:
>>> env.upgrade('django')
Upgrade all packages to their latest versions (new in 2.1.7):
>>> env.upgrade_all()
Uninstall the mezzanine package:
>>> env.uninstall('mezzanine')
Packages may be specified as name only (to work on the latest version), using pip’s package syntax (e.g. django==1.4) or as a tuple of ('name', 'ver') (e.g. ('django', '1.4')).
A package may be installed directly from a git repository (must end with .git):
>>> env.install('git+git://github.com/sjkingo/cartridge-payments.git')
New in 2.1.10:
A package can be installed in pip’s editable mode by prefixing the package name with -e (this is pip’s syntax):
>>> env.install('-e git+https://github.com/stephenmcd/cartridge.git')
Instances of the environment provide an installed_packages property:
>>> env.installed_packages
[('django', '1.5'), ('wsgiref', '0.1.2')]
A list of package names is also available in the same manner:
>>> env.installed_package_names
['django', 'wsgiref']
Search for a package on PyPI (changed in 2.1.5: this now returns a dictionary instead of list):
>>> env.search('virtualenv-api')
{'virtualenv-api': 'An API for virtualenv/pip'}
>>> len(env.search('requests'))
231
The old functionality (pre 2.1.5) of env.search may be used:
>>> list(env.search('requests').items())
[('virtualenv-api', 'An API for virtualenv/pip')]
Verbose output from each command is available in the environment’s build.log file, which is appended to with each operation. Any errors are logged to build.err.
Release files for zerotk.virtualenv-api 2.2.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 | |
|---|---|---|---|
| zerotk.virtualenv-api-2.2.1.tar.gz | 12.2 kB | Details |
Release files / zerotk.virtualenv-api-2.2.1.tar.gz
| Download URL | zerotk.virtualenv-api-2.2.1.tar.gz |
|---|---|
| Size | 12.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7d8195ec6ad7d3670ce3761ba0065a95993e71fa5c35d6f47b26a1a7d661bd82
|
|
BLAKE2b-256 checksum How to use checksums |
fb7edb66bc8da2f1e96698d37fb92c1e32ffa98dbb3510abd54b0e7577fe2489
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |