Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
vms:python:dev [2017/03/31 20:43] admin [Virtual Environments] |
vms:python:dev [2017/05/31 01:48] admin [Virtual Environments] |
||
---|---|---|---|
Line 62: | Line 62: | ||
Virtual Environments are used to isolate python versions and package dependencies for each specific project. | Virtual Environments are used to isolate python versions and package dependencies for each specific project. | ||
+ | |||
+ | We'll begin by creating specific users for python: | ||
+ | <Code:bash> | ||
+ | > adduser py2 | ||
+ | ... | ||
+ | <password> | ||
+ | ... | ||
+ | > adduser py3 | ||
+ | ... | ||
+ | <password> | ||
+ | ... | ||
+ | |||
+ | # To act as py2: | ||
+ | > su py2 | ||
+ | </Code> | ||
We'll install ''virtualenv'' for User only in order to allow coexistence of Python2 and Python3. As the virtualenv binary will bear the same name for 2 & 3, we'll move them on the go: | We'll install ''virtualenv'' for User only in order to allow coexistence of Python2 and Python3. As the virtualenv binary will bear the same name for 2 & 3, we'll move them on the go: | ||
Line 72: | Line 87: | ||
> nano ~/.bashrc | > nano ~/.bashrc | ||
ADD: | ADD: | ||
- | # Python virtualenv | + | # USER INSTALLED BINARIES [virtualenv(wrapper)] |
- | alias virtualenv2="~/.local/lib/python2.7/bin/virtualenv" | + | export PATH=$PATH:~/.local/bin/ |
> source ~/.bashrc | > source ~/.bashrc | ||
- | > virtualenv2 --version | + | > virtualenv --version |
15.1.0 | 15.1.0 | ||
</Code> | </Code> | ||
Line 112: | Line 127: | ||
</Code> | </Code> | ||
+ | ==== Virtualenvwrapper ==== | ||
+ | |||
+ | [[https://virtualenvwrapper.readthedocs.io/en/latest/]] | ||
+ | |||
+ | === Installation & Configuration === | ||
+ | |||
+ | Install virtualenvwrapper for python3 for the user only: | ||
+ | <Code> | ||
+ | > pip3 install --user virtualenvwrapper | ||
+ | > mv ~/.local/bin/* ~/.local/lib/python3.4/bin/ | ||
+ | > rm ~/.local/bin | ||
+ | > mkdir -p projects/code | ||
+ | > nano .bashrc | ||
+ | ADD: | ||
+ | |||
+ | # VirtualenvWrapper | ||
+ | export WORKON_HOME=$HOME/projects/.virtualenvs | ||
+ | export PROJECT_HOME=$HOME/projects/code | ||
+ | export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 | ||
+ | export PATH=~/.local/lib/python3.4/bin:$PATH | ||
+ | source $HOME/.local/lib/python3.4/bin/virtualenvwrapper.sh | ||
+ | |||
+ | > source .bashrc | ||
+ | virtualenvwrapper.user_scripts creating /home/dev/.virtualenvs/premkproject | ||
+ | ... | ||
+ | ... | ||
+ | virtualenvwrapper.user_scripts creating /home/dev/.virtualenvs/get_env_details | ||
+ | |||
+ | > mkvirtualenv temp | ||
+ | Using base prefix '/usr' | ||
+ | New python executable in /home/dev/.virtualenvs/temp/bin/python3 | ||
+ | Also creating executable in /home/dev/.virtualenvs/temp/bin/python | ||
+ | Installing setuptools, pip, wheel...done. | ||
+ | ... | ||
+ | ... | ||
+ | (temp) > | ||
+ | </Code> | ||
+ | |||
+ | === Projects management === | ||
+ | |||
+ | [[http://wiki.strategicz.com/vhyper/doku.php?id=vms:python:django#using_a_shared_folder_to_host_your_projects]] | ||
+ | <Code> | ||
+ | > VBoxManage setextradata <VM_NAME> VBoxInternal2/SharedFoldersEnableSymlinksCreate/<SHARE_NAME> 1 | ||
+ | </Code> | ||
+ | |||
+ | <Code> | ||
+ | > nano /etc/fstab | ||
+ | |||
+ | # automount shuup project space | ||
+ | <SHARE_NAME> /home/dev3/projects vboxsf defaults,uid=1001,gid=1001,dmode=775,fmode=774,umask=002 0 0 | ||
+ | |||
+ | </Code> | ||
+ | |||
+ | [[https://virtualenvwrapper.readthedocs.io/en/latest/projects.html#project-management]] | ||
+ | |||
+ | ===== Django ===== | ||
+ | |||
+ | [[http://wiki.strategicz.com/vhyper/doku.php?id=vms:python:django]] |