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
vms:python:dev [2017/03/31 20:37]
admin [Virtual Environments]
vms:python:dev [2017/05/31 02:55] (current)
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[/​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]]