Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
vms:python:dev [2017/03/31 20:37]
admin [Virtual Environments]
vms:python:dev [2017/05/31 02:54]
admin [Virtualenvwrapper]
Line 63: Line 63:
 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.
  
-As stated before, 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 ​rename ​them on the go:+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:
  
 === Virtualenv 2 === === Virtualenv 2 ===
Line 72: Line 87:
 > nano ~/.bashrc > nano ~/.bashrc
 ADD: ADD:
-Python ​virtualenv +USER INSTALLED BINARIES [virtualenv(wrapper)] 
-alias virtualenv3="~/.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 85: Line 100:
 > source env_name/​bin/​activate > source env_name/​bin/​activate
 > cd env_name > cd env_name
 +[> deactivate]
 </​Code>​ </​Code>​
  
Line 101: 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
 +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]]