Python and virtualenv » History » Version 12
Alexis Jeandet, 14/08/2016 05:31 PM
1 | 1 | Alexis Jeandet | # Python and virtualenv |
---|---|---|---|
2 | |||
3 | ## Why? |
||
4 | Usually with Python you may ear from your colleagues "Hey, you may use package X to do this it's much better than Y and easier" then you discover that package X isn't packaged in your distribution or you install it and it mess up your system. For example Jupyter isn't packaged yet in Fedora and installing it directly with pip may break your already installed version of IPython-3x. |
||
5 | To use last version of your favourite Python tools such as Jupyter notebooks or Pandas on your system without messing up your computer, virtualenv is a solution. |
||
6 | It will allow you to install any python package with pip in an isolated environment so your system will not see your packages until you activate it. |
||
7 | 11 | Alexis Jeandet | You will be able to have as many virtual environments as you want with different packages and different versions in each environment. |
8 | 1 | Alexis Jeandet | |
9 | ## How? |
||
10 | |||
11 | 1. First get virtualenv |
||
12 | |||
13 | On Fedora: |
||
14 | |||
15 | ~~~bash |
||
16 | 10 | Alexis Jeandet | sudo dnf install python*-virtualenv python-qt5-devel python3-qt5-devel |
17 | 1 | Alexis Jeandet | ~~~ |
18 | 5 | Alexis Jeandet | |
19 | 7 | Alexis Jeandet | On Mac OS with port: |
20 | 6 | Alexis Jeandet | |
21 | 5 | Alexis Jeandet | ~~~bash |
22 | sudo port install py35-virtualenv |
||
23 | sudo port install py27-virtualenv |
||
24 | ~~~ |
||
25 | |||
26 | 1 | Alexis Jeandet | Will install both Python2 and Python3 versions of virtualenv. |
27 | |||
28 | 2. Create your environments |
||
29 | |||
30 | ~~~bash |
||
31 | 5 | Alexis Jeandet | sudo mkdir /opt/Py2Venv /opt/Py3Venv |
32 | sudo chown -R <yourLogin> /opt/Py2Venv /opt/Py3Venv |
||
33 | 8 | Alexis Jeandet | virtualenv-2.7 --system-site-packages /opt/Py2Venv |
34 | virtualenv-3.4 --system-site-packages /opt/Py3Venv |
||
35 | 1 | Alexis Jeandet | ~~~ |
36 | |||
37 | 9 | Alexis Jeandet | Now you have two basic virtual environments for Python 2 and 3. Note that you can remove the --system-site-packages flag to tell that you want your environment to ignore system-wide packages it may protect you from some local and global packages incompatibilities. In most cases you may create it with --system-site-packages flag. |
38 | 1 | Alexis Jeandet | |
39 | 3. Use it |
||
40 | |||
41 | Your environment is ready to play, to use it you have to **activate** it. |
||
42 | |||
43 | ~~~bash |
||
44 | source /opt/Py3Venv/bin/activate |
||
45 | ~~~ |
||
46 | |||
47 | Then it will override your system pip command by your current virtualenv one and all packages installed with pip while your environment is activated will be installed in your environment. |
||
48 | If the activate command worked you may see you shell prompt like this: |
||
49 | |||
50 | ~~~ |
||
51 | (Py3Venv)[adminlpp@pc-instru opt]$ |
||
52 | ~~~ |
||
53 | Note the **(Py3Venv)** this says that Py3Venv is activated. To quit/deactivate it just use the command **deactivate**. |
||
54 | |||
55 | Let's install Pandas, Jupyter, numpy... |
||
56 | |||
57 | ~~~bash |
||
58 | 2 | Alexis Jeandet | (Py3Venv)[adminlpp@pc-instru opt]$ pip install pandas |
59 | (Py3Venv)[adminlpp@pc-instru opt]$ pip install jupyter |
||
60 | 1 | Alexis Jeandet | ~~~ |
61 | 12 | Alexis Jeandet | |
62 | **Note that some python packages depends on system libraries, you may need to install them plus the devel packages** |