Pyenv - ຕິດຕັ້ງຫລາຍລຸ້ນ Python ສຳ ລັບໂຄງການສະເພາະ


ການຈັດການ Python ຫລາຍລຸ້ນໃນລະບົບ Linux ບໍ່ແມ່ນວຽກທີ່ງ່າຍ, ໂດຍສະເພາະ ສຳ ລັບຜູ້ເລີ່ມຕົ້ນ. ບາງຄັ້ງມັນກໍ່ຮ້າຍແຮງກວ່າເກົ່າໃນເວລາທີ່ທ່ານຕ້ອງການພັດທະນາແລະດໍາເນີນໂຄງການທີ່ມີຫລາຍລຸ້ນ Python ທີ່ແຕກຕ່າງກັນໃນ server ດຽວກັນ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ມັນບໍ່ຄວນເປັນແນວນັ້ນຖ້າທ່ານຈ້າງ pyenv.

Pyenv ແມ່ນເຄື່ອງມືທີ່ງ່າຍດາຍ, ມີປະສິດທິພາບແລະຂ້າມເວທີ ສຳ ລັບການຈັດການຫລາຍລຸ້ນ Python ໃນລະບົບ Linux, ເຊິ່ງໃຊ້ ສຳ ລັບ.

  • ການປ່ຽນສະບັບ Python ທົ່ວໂລກບົນພື້ນຖານຜູ້ໃຊ້ແຕ່ລະຄົນ.
  • ກຳ ນົດສະບັບ Python ໃນທ້ອງຖິ່ນຕາມແຕ່ລະໂຄງການ.
  • ການຄຸ້ມຄອງສະພາບແວດລ້ອມເສມືນທີ່ສ້າງໂດຍ anaconda ຫຼື virtualenv.
  • ຂ້າມຮຸ່ນ Python ດ້ວຍຕົວແປສິ່ງແວດລ້ອມ.
  • ຄົ້ນຫາ ຄຳ ສັ່ງຈາກຫລາຍໆລຸ້ນຂອງ Python ແລະອື່ນໆ.

ໂດຍປົກກະຕິແລ້ວ, ໂປແກມ Python ແບບດັ້ງເດີມດຽວຈະຖືກ ນຳ ໃຊ້ເພື່ອ ດຳ ເນີນການທຸກໆ ຄຳ ຮ້ອງສະ ໝັກ ຂອງທ່ານ, ເວັ້ນເສຍແຕ່ວ່າທ່ານ ກຳ ນົດຢ່າງຈະແຈ້ງສະບັບທີ່ທ່ານຕ້ອງການໃຊ້ພາຍໃນແອັບພລິເຄຊັນ. ແຕ່ pyenv ປະຕິບັດແນວຄວາມຄິດງ່າຍໆຂອງການໃຊ້ shims (ການປະຕິບັດທີ່ມີນ້ໍາຫນັກເບົາ) ເພື່ອສົ່ງຄໍາສັ່ງຂອງທ່ານໄປຫາ Python version ທີ່ຖືກຕ້ອງທີ່ທ່ານຕ້ອງການໃຊ້, ເມື່ອທ່ານໄດ້ຕິດຕັ້ງຫລາຍລຸ້ນ.

shims ເຫຼົ່ານີ້ແມ່ນຖືກໃສ່ໂດຍ pyenv ໃນລາຍຊື່ຢູ່ທາງຫນ້າຂອງ PATH ຂອງທ່ານ. ສະນັ້ນເມື່ອທ່ານໃຊ້ ຄຳ ສັ່ງ Python, ມັນຈະຖືກແຊກແຊງໂດຍ shim ທີ່ ເໝາະ ສົມແລະຖືກສົ່ງໄປ pyenv, ຈາກນັ້ນກໍ່ສ້າງລຸ້ນ Python ທີ່ໄດ້ລະບຸໄວ້ໂດຍ ຄຳ ຮ້ອງສະ ໝັກ ຂອງທ່ານ, ແລະສົ່ງ ຄຳ ສັ່ງຂອງທ່ານໄປພ້ອມກັບການຕິດຕັ້ງ Python ທີ່ຖືກຕ້ອງ. ນີ້ແມ່ນພາບລວມຂອງວິທີການເຮັດວຽກຂອງ pyenv.

ໃນບົດຂຽນນີ້, ພວກເຮົາຈະສະແດງວິທີການຕິດຕັ້ງ pyenv ລຸ້ນລ້າສຸດໃນ Linux. ພວກເຮົາຍັງຈະສະແດງໃຫ້ເຫັນສາມກໍລະນີການ ນຳ ໃຊ້ທີ່ລະບຸໄວ້ຂ້າງເທິງ.

ວິທີການຕິດຕັ້ງ Pyenv ໃນ Linux

1. ທຳ ອິດຕິດຕັ້ງທຸກຊຸດທີ່ ຈຳ ເປັນ ສຳ ລັບຕິດຕັ້ງລຸ້ນ Python ທີ່ແຕກຕ່າງຈາກແຫຼ່ງຕ່າງໆໂດຍໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້ກ່ຽວກັບການແຈກຈ່າຍ Linux ຂອງທ່ານ.

------------ On Debian/Ubuntu/Linux Mint ------------ 
$ sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev

------------ On CentOS/RHEL ------------
# yum -y install epel-release
# yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

------------ On Fedora 22+ ------------
# yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

2. ຕໍ່ໄປ, ຈັບເອົາຕົ້ນໄມ້ທີ່ເປັນແຫຼ່ງ pyenv ຫຼ້າສຸດຈາກບ່ອນເກັບມ້ຽນ Github ຂອງມັນແລະຕິດຕັ້ງຢູ່ໃນເສັ້ນທາງ $HOME/.pyenv ໂດຍໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

3. ຕອນນີ້ທ່ານ ຈຳ ເປັນຕ້ອງ ກຳ ນົດ PYENV_ROOT ຕົວແປສິ່ງແວດລ້ອມເພື່ອຊີ້ໄປທີ່ເສັ້ນທາງທີ່ທ່ານຕິດຕັ້ງ pyenv ແລະສົ່ງອອກ. ຫຼັງຈາກນັ້ນຕື່ມ $PYENV_ROOT/bin ໃສ່ PATH ຂອງທ່ານເພື່ອ ດຳ ເນີນການ pyenv utility-line utility ຄືກັບ ຄຳ ສັ່ງອື່ນໆຂອງລະບົບ.

ນອກນັ້ນທ່ານຍັງຕ້ອງໄດ້ເປີດໃຊ້ shims ເຊັ່ນດຽວກັນກັບ autocompletion ໂດຍການເພີ່ມ pyenv init ໃສ່ແກະຂອງທ່ານ. ເຮັດທຸກຢ່າງນີ້ໃນເອກະສານເລີ່ມຕົ້ນ $HOME/.bashrc bash ຂອງທ່ານ, ດັ່ງທີ່ສະແດງໄວ້.

$ vim $HOME/.bashrc 

ຄັດລອກແລະວາງສາຍຕໍ່ໄປນີ້ຢູ່ໃນຕອນທ້າຍຂອງເອກະສານນີ້.

## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

4. ເມື່ອທ່ານໄດ້ເຮັດການປ່ຽນແປງຂ້າງເທິງແລ້ວ, ທ່ານສາມາດຊອກຫາເອກະສານ $HOME/.bashrc ຫຼືຕັ້ງຄ່າ shell ຄືນ ໃໝ່ ດັ່ງທີ່ສະແດງໄວ້.

$ source $HOME/.bashrc
OR
$ exec "$SHELL"

ວິທີການຕິດຕັ້ງ Python ຫລາຍລຸ້ນໃນ Linux

5. ໃນຈຸດນີ້, ທ່ານຄວນກຽມພ້ອມທີ່ຈະເລີ່ມໃຊ້ pyenv. ກ່ອນທີ່ທ່ານຈະຕິດຕັ້ງເວີຊັນ Python ໃດໆ, ທ່ານສາມາດເບິ່ງທຸກລຸ້ນທີ່ມີພ້ອມດ້ວຍ ຄຳ ສັ່ງນີ້.

$ pyenv install -l

6. ຕົວຢ່າງດຽວນີ້ທ່ານສາມາດຕິດຕັ້ງ Python ຫລາຍລຸ້ນຜ່ານ pyenv, ຕົວຢ່າງ.

$ pyenv install 3.6.4
$ pyenv install 3.6.5

7. ເພື່ອລົງລາຍຊື່ Python ທັງ ໝົດ ທີ່ມີໃຫ້ກັບ pyenv, ໃຫ້ເຮັດຕາມ ຄຳ ສັ່ງຕໍ່ໄປນີ້. ນີ້ພຽງແຕ່ສະແດງລຸ້ນທີ່ຕິດຕັ້ງຜ່ານ pyenv ເອງ.

$ pyenv versions

8. ທ່ານສາມາດກວດສອບສະບັບ Python ທົ່ວໂລກໂດຍມີ ຄຳ ສັ່ງຕໍ່ໄປນີ້, ຮອດເວລານີ້, ຮຸ່ນເລີ່ມຕົ້ນຄວນຈະເປັນແບບທີ່ຖືກຕັ້ງໂດຍລະບົບ, ບໍ່ແມ່ນ pyenv.

$ pyenv global

ທ່ານສາມາດ ກຳ ນົດລຸ້ນ python ທົ່ວໂລກໂດຍໃຊ້ ຄຳ ສັ່ງ pyenv.

$ pyenv global 3.6.5
$ pyenv global

9. ດຽວນີ້ທ່ານສາມາດ ກຳ ນົດລຸ້ນ Python ໃນທ້ອງຖິ່ນຕາມແຕ່ລະໂຄງການ, ຍົກຕົວຢ່າງ, ຖ້າທ່ານມີໂຄງການຕັ້ງຢູ່ $HOME/python_projects/test, ທ່ານສາມາດຕັ້ງ Python version ຂອງມັນໂດຍໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ cd python_projects/test
$ pyenv local 3.6.5
$ pyenv version		#view local python version for a specific project 
OR
$ pyenv versions

10.

ທ່ານສາມາດເລີ່ມຕົ້ນໂດຍການຕິດຕັ້ງປັpluginກອິນນີ້ໂດຍໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ git clone https://github.com/yyuu/pyenv-virtualenv.git   $HOME/.pyenv/plugins/pyenv-virtualenv
$ source $HOME/.bashrc

11. ຕອນນີ້ພວກເຮົາຈະສ້າງສະພາບແວດລ້ອມແບບທົດສອບທີ່ມີຊື່ວ່າ venv_project1 ພາຍໃຕ້ໂຄງການທີ່ເອີ້ນວ່າ project1 ດັ່ງຕໍ່ໄປນີ້.

$ cd python_projects
$ mkdir project1
$ cd project1
$ pyenv virtualenv 3.6.5 venv_project1

12. ດຽວນີ້ເມື່ອທ່ານຈົດຊື່ Python ທຸກລຸ້ນ, ສະພາບແວດລ້ອມເສມືນຂອງທ່ານພ້ອມທັງສະບັບ python ໃນທ້ອງຖິ່ນຂອງພວກເຂົາກໍ່ຄວນຈະຖືກລະບຸໄວ້ເຊັ່ນດຽວກັນກັບທີ່ສະແດງຢູ່ໃນພາບ ໜ້າ ຈໍ.

$ pyenv versions

13. ເພື່ອເປີດໃຊ້ virtualenv, ຍົກຕົວຢ່າງ venv_project1, ພິມ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ pyenv activate venv_project1

ໝາຍ ເຫດ: ທ່ານອາດຈະໄດ້ຮັບຂໍ້ຄວາມຂ້າງລຸ່ມນີ້ໃນຂະນະທີ່ ນຳ ໃຊ້ໂປແກຼມ pyenv-virtualenv ເວີຊັນລ້າສຸດເປັນເທື່ອ ທຳ ອິດ.

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

ເພີ່ມເສັ້ນສົ່ງອອກ PYENV_VIRTUALENV_DISABLE_PROMPT = 1 ໃນເອກະສານ $HOME/.bashrc ຂອງທ່ານ, ບ່ອນທີ່ທ່ານໄດ້ເພີ່ມສັບສົນ pyenv ອື່ນໆ, ແລະ ນຳ ໃຊ້ເອກະສານເພື່ອ ຈຳ ລອງພຶດຕິ ກຳ ທີ່ຖືກເນັ້ນ ໜັກ.

14. ເພື່ອປິດການໃຊ້ງານ virtualenv ທີ່ເຮັດວຽກ, ເຮັດໃຫ້ ຄຳ ສັ່ງນີ້ຢຸດ.

$ pyenv deactivate

ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ທ່ານສາມາດລາຍຊື່ຄໍາສັ່ງ pyenv ທັງຫມົດໂດຍໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້.

$ pyenv commands

ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມ, ໃຫ້ໄປທີ່ຫໍສະ ໝຸດ pyenv Github: https://github.com/pyenv/pyenv

ການໃຊ້ pyenv ແມ່ນງ່າຍດາຍແທ້ໆ. ໃນຄູ່ມືນີ້, ພວກເຮົາໄດ້ສະແດງວິທີການຕິດຕັ້ງ, ພ້ອມທັງສະແດງໃຫ້ເຫັນບາງກໍລະນີການ ນຳ ໃຊ້ຂອງມັນ ສຳ ລັບການຈັດການ python ຫລາຍລຸ້ນໃນລະບົບ Linux. ໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້ເພື່ອຖາມ ຄຳ ຖາມໃດໆຫຼືແບ່ງປັນຄວາມຄິດຂອງທ່ານກ່ຽວກັບເຄື່ອງມືນີ້.