PyEnv does not have a great installer, and it requires some post-install processing to get it to work correctly (such as modifying .bashrc
to add to $PATH
and make two pyenv
calls). I'm wondering how anyone has been able to get PyEnv installed via Vagrantfile. I want to build a reusable image to develop on so that I don't have to go through the reinstall process if I destroy this VM.
I've tried running the installer and making the recommended edits to .bashrc
to get pyenv
working, but when I get into my Vagrant box pyenv
is not installed. I've tried moving the pyenv
script into /bin/pyenv
but it is not there when the machine comes up. How do I make this work?
For reference, here is the script I'm currently running that fails to install PyEnv to a Vagrant machine during a Vagrant provision step in the Vagrantfile
:
#! /usr/bin/env bash
# REQUIRES: curl, git
curl -L https://raw.githubusercontent.com/pyenv/pyenv-
installer/master/bin/pyenv-installer | bash
cat >> /home/ubuntu/.bashrc << 'EOF'
export PATH="$PATH:~/.pyenv/bin"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
EOF
exec $SHELL
And trying to move pyenv
under /bin
:
#! /usr/bin/env bash
# REQUIRES: curl, git
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
mv ~/.pyenv/bin/pyenv /bin/pyenv
cat >> /home/ubuntu/.bashrc << 'EOF'
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
EOF
exec $SHELL
Neither work. How do I get this installed?