How to use virtualenv + virtualenvwrapper properly with Vagrant?
-
21-12-2019 - |
Question
I found that the most convenient way of installing virtualenv + virtualenvwrapper is by using virtualenvburrito.
Now I can manage to automate my pip installs in a vagrant provision by the following:
Line in Vagrantfile:
config.vm.provision :shell, :path => "bootstrap.sh"
Lines in bootstrap.sh:
curl -s https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | $SHELL
source /root/.venvburrito/startup.sh
cd /vagrant
mkvirtualenv my_project
pip install -r requirements.txt
Then I run vagrant ssh
but then I have to run the following to access my virtual environment:
sudo -i
source /root/.venvburrito/startup.sh
workon my_project
I don't want to always have to run sudo -i
and source /root/.venvburrito/startup.sh
, I just want to be able to run workon my_project
directly.
But
(I.) I can't seem to append source /root/.venvburrito/startup.sh
to my ~/.profile
and
(II.) even if it was appended to that file I'd get a permissionerror. I can't seem to change the permissions for any protected file either.
Solution
The best way to deal with (I.) and (II.) is to set the privileged
attribute in the Vagrantfile to false
.
See here