Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
vms:python:dev [2017/03/31 20:41] admin [Virtual Environments] |
vms:python:dev [2017/05/31 02:55] (current) admin [Virtualenvwrapper] |
||
|---|---|---|---|
| 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 102: | Line 117: | ||
| <Code> | <Code> | ||
| > pip3 install --user virtualenv | > pip3 install --user virtualenv | ||
| + | > mv ~/.local/bin ~/.local/lib/python3.4/ | ||
| > nano ~/.bashrc | > nano ~/.bashrc | ||
| ADD: | ADD: | ||
| alias virtualenv3='~/.local/lib/python3.4/bin/virtualenv' | alias virtualenv3='~/.local/lib/python3.4/bin/virtualenv' | ||
| - | > source .bashrc | + | > source ~/.bashrc |
| > virtualenv3 --version | > virtualenv3 --version | ||
| 15.1.0 | 15.1.0 | ||
| </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: | ||
| + | |||
| + | # USER INSTALLED BINARIES [virtualenv(wrapper)] | ||
| + | export PATH=~/.local/bin:$PATH | ||
| + | |||
| + | # VIRTUALENVWRAPPER | ||
| + | export WORKON_HOME=$HOME/.virtualenvs | ||
| + | export PROJECT_HOME=$HOME[/code] | ||
| + | export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python[2|3] | ||
| + | export VIRTUALENVWRAPPER_VIRTUALENV=$HOME/.local/bin/virtualenv | ||
| + | |||
| + | source $HOME/.local/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]] | ||