Maven dùng pom để quản lý packages, Node thì có packages.json. Anh em python thì quản lý python packages bằng pip (Package installer for Python). Tuy nhiên khi sử dụng pip sẽ gặp phải tình huống các dự án khác nhau sử dụng dánh sách packages khác nhau. Vấn đề lớn hơn nữa có thể xảy ra tình huống 2 dự án nào đó sử dụng cùng package ở hai phiên bản khách nhau. Trong bài viết này tôi sẽ hướng dẫn các bạn cách quản lý python packages cho các dự án khác nhau mà không bị phụ thuộc vào nhau. Chúng ta cùng bắt đầu nhé.
Kiểm tra tình trạng hoạt động của brew
nào:
hieunv@HieuNV ~ % brew update && brew upgrade
Updated 1 tap (homebrew/core).
==> Updated Formulae
abcm2ps consul grails pjproject
allure dps8m graphicsmagick rancid
appstream-glib erlang i2p ratfor
byteman flyway jruby stress-ng
camlp5 folly libgphoto2 zydis
cargo-instruments fonttools libjwt
cfengine gmsh mill
clblast gptfdisk mongoose
Cài đặt python 3
brew install python
Mặc định MacOS sử dụng python 2
hieunv@HieuNV ~ % python -V
Python 2.7.16
hieunv@HieuNV ~ % python3 -V
Python 3.7.0
Các bạn cần thêm đoạn sau vào ~/.zshrc
.
export PATH="/usr/local/opt/python/libexec/bin:/usr/local/sbin:$PATH"
Nếu đang mở Terminal bạn cần đóng Terminal lại rồi kiểm tra lại python version
hieunv@HieuNV ~ % python -V
Python 3.7.6
hieunv@HieuNV ~ % pip -V
pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
Cài đặt virtualenv
và virtualenvwrapper
Với python các packages không được cài đặt cục bộ giống như node. Do đó chúng ta cần tạo ra các môi trường khác nhau với các packages khác nhau để sử dụng cho các dự án khác nhau.
Cài đặt virtualenv
pip install virtualenv
Cài đặt virtualenvwrapper
pip install virtualenvwrapper
Activate virtualenv
mỗi khi bật khởi động Terminal
Các bạn thêm đoạn sau vào ~/.zshrc
để virutalenv có thể dượcd khởi động mỗi khi bạn bật Terminal
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
Tiến hành tạo môi trưởng ảo và cài đặt packages mong muốn
- Tạo môi trường ảo
hieunv@HieuNV ~ % mkvirtualenv a
created virtual environment CPython3.7.6.final.0-64 in 515ms
creator CPython3Posix(dest=/Users/hieunv/.virtualenvs/a, clear=False, global=False)
seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/Users/hieunv/Library/Application Support/virtualenv/seed-app-data/v1)
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
virtualenvwrapper.user_scripts creating /Users/hieunv/.virtualenvs/a/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/hieunv/.virtualenvs/a/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/hieunv/.virtualenvs/a/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/hieunv/.virtualenvs/a/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/hieunv/.virtualenvs/a/bin/get_env_details
(a) hieunv@HieuNV ~ %
Các bạn để ý dòng cuối cùng (a)
. Sau khi tạo xong thì zsh đã activate vào môi trường ảo.
- Active vào môi trường ảo nếu môi trường chưa được active thì có thể làm như sau:
hieunv@HieuNV ~ % workon a
(a) hieunv@HieuNV ~ %
- Khi muốn thoát khỏi môi trường ảo thì có thể làm như sau:
(a) hieunv@HieuNV ~ % deactivate
hieunv@HieuNV ~ %
- Để cài đặt packages thì tiến hành cài đặt bằng pip như bình thường
pip install boto3
Sử dụng môi trường ảo với python 2
- Cài đặt python 2
brew install python2
- Tạo môi trường ảo sử dụng python bằng tham số
-p
mkvirtualenv py2 -p python2
Export package list để install trên máy khác
(a) hieunv@HieuNV ~ % pip freeze > requirements.txt
(a) hieunv@HieuNV ~ % cat requirements.txt
boto3==1.12.11
botocore==1.15.11
docutils==0.15.2
jmespath==0.9.5
python-dateutil==2.8.1
s3transfer==0.3.3
six==1.14.0
urllib3==1.25.8
Cài đặt packages sử dụng requirements.txt
pip install -r requirements.txt
Tài liệu tham khảo:
- https://swapps.com/blog/how-to-configure-virtualenvwrapper-with-python3-in-osx-mojave/
Leave a Reply