Help building a pyenv local mirror!
pip install pyenv-mirror
$ pyenv-mirror --help
Usage:
pyenv-mirror create-mirror
pyenv-mirror download-package <pkg-name> [<python-build-path>]
$ ls
$ pyenv-mirror create-mirror
$ ls
pyenv-local-mirror
Create a directory named pyenv-local-mirror
in current working directory. The structure of pyenv-local-mirror
is almost identical to yyuu/yyuu.github.com, except that all the so-called "packages" located in pyenv-local-mirror/pythons
were removed.
pyenv-mirror download-package
downloads all related files of a package to current working directory. pyenv-mirror download-package <pkg-name> [<python-build-path>]
:
<pkg-name>
, same as the arguement followingpyenv install
.<python-build-path>
, the path of python-build directory. If you installedpyenv
through homebrew, you might need to pass the path of above directory explicitly. If omitted, the path is default to$PYENV_ROOT/plugins/python-build/share/python-build
.
$ pyenv-mirror download-package 2.7 '/usr/local/Cellar/pyenv/20160310/plugins/python-build/share/python-build'
Downloading https://www.openssl.org/source/openssl-1.0.2g.tar.gz#b784b1b3907ce39abf4098702dade6365522a253ad1552e267a9a0e89594aa33
Downloading http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43
Downloading http://www.python.org/ftp/python/2.7/Python-2.7.tgz#5670dd6c0c93b0b529781d070852f7b51ce6855615b16afcd318341af2910fb5
$ ls
Python-2.7.tgz openssl-1.0.2g.tar.gz readline-6.3.tar.gz
cd pyenv-local-mirror
.- Define your
PYTHON_BUILD_MIRROR_URL
in./pythons/install-pyenv.sh
. - Customize HTTP port by changing
PORT
of./pythons/run-http-server.sh
. By default,PORT
equals to8999
. - Execute script
./pythons/run-http-server.sh
.
cd pyenv-local-mirror/pythons
.- Download Different Pythons (e.g. 2.7.x, 3.5.x) into
source
dir. - Exec
bash update.sh
- Open /pythons/index.html to see available Pythons info.
$ wget -O - '<your PYTHON_BUILD_MIRROR_URL>/scripts/install-pyenv.sh' | bash
Above command would install pyenv
to $PYENV_ROOT
. If omitted, $PYENV_ROOT
defaults to ~/.pyenv
.
After that, add
export PYTHON_BUILD_MIRROR_URL=$<your PYTHON_BUILD_MIRROR_URL>/pythons
to your configuration file so that pyenv
could download the packages from your local mirror.
When you need to install a new Python into your local Pyenv, e.g., 2.7.11
, usually, you can do as following:
pyenv install 2.7.11
However, as newer Pythons come into being, local Pyenv does have the index
to download them.
Therefore, a safer way to install Pythons for local Pyenv would be like:
- Download
index
of needed version, e.g., 2.7.13, from here into a directory, sayxxx_dir
- cd
xxx_dir
pyenv install 2.7.13
- rm the index file, 2.7.13