Create a complete self contained virtualenv bootstrap file by enbed 'get-pip.py'
Project description
bootstrap_env
Experimental project to create a complete self contained virtualenv bootstrap file. See: packaging-problems issues 55
info
Since virtualenv v1.10 you a virtualenv bootstrap file is not runnable without the pip and setuptools wheel files. There must be created a virtualenv_support with the wheels.
e.g.:
/bootstrap.py /virtualenv_support/ pip-1.5.6-py2.py3-none-any.whl setuptools-3.6-py2.py3-none-any.whl
With this project this is not needed. The current solution embed get_pip.py into the bootstrap file and call it after env creation.
the example
The included example will create a boot_example.py bootstrap file. Running this looks like:
~ $ python2 boot_example.py ~/testenv The additional example extend_parser() code is called. The additional example adjust_options() code is called. New python executable in /home/jens/testenv/bin/python2 Also creating executable in /home/jens/testenv/bin/python call to install pip with: '/home/jens/testenv/bin/python /path/to/bootstrap_env/boot_example.py --install-pip /home/jens/testenv' install pip from self contained 'get_pip.py' Downloading/unpacking pip Downloading pip-1.5.6-py2.py3-none-any.whl (1.0MB): 1.0MB downloaded Downloading/unpacking setuptools Downloading setuptools-6.0.2-py2.py3-none-any.whl (543kB): 543kB downloaded Installing collected packages: pip, setuptools Successfully installed pip setuptools Cleaning up... The additional example after_install() code is called.
The example hook code stored separated files in example directory looks like this:
def extend_parser(parser): # --- CUT here --- sys.stdout.write("The additional example extend_parser() code is called.\n")
def adjust_options(options, args): # --- CUT here --- sys.stdout.write("The additional example adjust_options() code is called.\n")
def after_install(options, home_dir): # --- CUT here --- sys.stdout.write("The additional example after_install() code is called.\n")
Creating the example bootstrap file looks like this:
/path/to/bootstrap_env/ $ python2 example.py Generate bootstrap file: 'boot_example.py'... Reade code from: 'example/extend_parser.py'... Reade code from: 'example/adjust_options.py'... Reade code from: 'example/after_install.py'... Reade code from: '/path/to/bootstrap_env/bootstrap_env/bootstrap_install_pip.py'... Request: 'https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py'... get-pip.py SHA256: 'd43dc33a5670d69dd14a9be1f2b2fa27ebf124ec1b212a47425331040f742a9b', ok. 'boot_example.py' written.
After the first call, the requested get-pip.py file will be cached into the default temp and reused from there. So it is fast to generate it again:
/path/to/bootstrap_env/ $ python2 example.py Generate bootstrap file: 'boot_example.py'... Reade code from: 'example/extend_parser.py'... Reade code from: 'example/adjust_options.py'... Reade code from: 'example/after_install.py'... Reade code from: '/path/to/bootstrap_env/bootstrap_env/bootstrap_install_pip.py'... Use '/tmp/get-pip.py' get-pip.py SHA256: 'd43dc33a5670d69dd14a9be1f2b2fa27ebf124ec1b212a47425331040f742a9b', ok. 'boot_example.py' written.
usage
To create you own bootstrap file, is easy. Just copy the example code and change it for your needs.
Another example are the bootstrap usage in PyLucid django-cms branch.
History
v0.3.1 - 14.11.2014 - Bugfix for “error: no such option:” while pip install, if own optional options are used.
v0.3.0 - 13.11.2014 - typo: rename all bootstrip to bootstrap ;)
v0.2.0 - 09.10.2014 - add prefix and suffix argument to generate_bootstrap()
v0.1.0 - 09.10.2014 - initial release
Links:
Forum |
|
IRC |
|
Jabber |
|
PyPi |
|
Github |
Simmilar projects are:
Related pages:
donation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file bootstrap_env-0.3.1.tar.gz
.
File metadata
- Download URL: bootstrap_env-0.3.1.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0cb3985d890af88ea4c110ca8f1c681d36c959723faecd55ec2fb7a2a794d83 |
|
MD5 | d9a0a4c6d2911e71709e3803e80ffacb |
|
BLAKE2b-256 | 1288fc5469f23be26e1687127a3c3c63d4f9ba1c7d97af22659bc96de63139c5 |