Agora que já temos o módulo instalado, vamos criar nosso primeiro projeto usando uma
virtualenv.
O primeiro passo é criar o diretório do projeto:
mkdir meuLab
cd meuLab
Criar a virtualenv. Neste exemplo utilizarei o Python 3.x:
python3 -m virtualenv venv
O que aconteceu? O Python criou um diretório chamado "venv" no local atual. Veja:
find venv
venv
venv/include
venv/include/python3.5m
venv/bin
venv/bin/python3
venv/bin/activate
venv/bin/wheel
venv/bin/imgurscrot
venv/bin/easy_install-3.5
venv/bin/activate.ps1
venv/bin/activate_this.py
venv/bin/chardetect
venv/bin/python-config
venv/bin/pip
venv/bin/python
venv/bin/python3.5
venv/bin/activate.csh
venv/bin/easy_install
venv/bin/pip3
venv/bin/pip3.5
venv/bin/activate.fish
venv/lib
venv/lib/python3.5
venv/lib/python3.5/_weakrefset.py
venv/lib/python3.5/operator.py
venv/lib/python3.5/fnmatch.py
.
.
.
venv/lib/python3.5/orig-prefix.txt
venv/lib/python3.5/config-3.5m-x86_64-linux-gnu
venv/lib/python3.5/imp.py
venv/lib/python3.5/functools.py
venv/lib/python3.5/encodings
venv/lib/python3.5/os.py
venv/lib/python3.5/linecache.py
venv/lib/python3.5/_dummy_thread.py
venv/lib/python3.5/genericpath.py
venv/lib/python3.5/hmac.py
venv/lib/python3.5/random.py
venv/lib/python3.5/lib-dynload
venv/lib/python3.5/sre_constants.py
venv/lib/python3.5/heapq.py
venv/lib/python3.5/abc.py
Agora vamos ativar o ambiente virtual:
source venv/bin/activate
Note que agora há um prefixo "(venv)" no seu terminal:
(venv) $
Você agora está enjaulado num ambiente Python 3.x, os comandos "python" e "pip", ao invés de invocarem a versão padrão do sistema, que é a 2.x, invocarão a versão enjaulada que acabaste de criar:
(venv) $ python --version
Python 3.5.3
(venv) $ pip --version
pip 18.1 from /home/fabio/artigos/meuLab/venv/lib/python3.5/site-packages/pip (python 3.5)
Para este artigo criarei um simples script para capturar a tela do computador que utiliza a biblioteca pyautogui, que por sua vez depende da Xlib para funcionar.
Então vamos lá:
(venv) $ pip install Xlib pyautogui
Collecting Xlib
Using cached https://files.pythonhosted.org/packages/3f/00/321541273b0ed2167b36c82be9baeb0bdc8af1c11c1b01de9436b84b5eaf/xlib-0.21-py2.py3-none-any.whl
Collecting pyautogui
Requirement already satisfied: six>=1.10.0 in ./venv/lib/python3.5/site-packages (from Xlib) (1.12.0)
Requirement already satisfied: pyscreeze in ./venv/lib/python3.5/site-packages (from pyautogui) (0.1.18)
Requirement already satisfied: Pillow in ./venv/lib/python3.5/site-packages (from pyautogui) (5.3.0)
Requirement already satisfied: pymsgbox in ./venv/lib/python3.5/site-packages (from pyautogui) (1.0.6)
Requirement already satisfied: PyTweening>=1.0.1 in ./venv/lib/python3.5/site-packages (from pyautogui) (1.0.3)
Installing collected packages: Xlib, pyautogui
Successfully installed Xlib-0.21 pyautogui-0.9.39
Note que ambas as bibliotecas foram instaladas dentro de sua jaula, no diretório "venv":
- venv/lib/python3.5/site-packages/Xlib
- venv/lib/python3.5/site-packages/pyautogui
E agora vamos ao código:
(venv) $ vim captura-tela.py
import pyautogui
pyautogui.screenshot("minha-tela.png")
Executar:
(venv) $ python captura-tela.py
NOTA: em caso de erro na execução, instale o scrot, que é dependência do pyautogui.screenshot:
(venv) $ sudo apt install scrot
Para desativar o ambiente virtual basta digitar:
(venv) $ deactivate
E sempre que quiser voltar a trabalhar no ambiente, entre no diretório do projeto e repita o comando:
source venv/bin/activate
Viram como é simples trabalhar com ambientes virtuais em Python? Não deixe de adotar essa prática, ela é EXTREMAMENTE recomendável.