[問題] 請問如何在bash script啟動pyenv虛擬環境

作者: chang0206 (Eric Chang)   2021-12-06 14:11:38
最近在測試一個django app
在一般狀況下,我可以用user 帳號登入 ssh 切換到工作目錄
然後用 pyenv activate venv_name 啟動虛擬環境
安裝好套件之後,啟動gunicorn 把django site 叫起來.
可是把這些指令寫成bash script 之後,就無法正常啟動了
script 大概長這樣
#!/bin/bash
pyenv activate .ve
pyenv exec gunicorn config.wsgi:application
作者: lycantrope (阿寬)   2021-12-06 14:23:00
先eval "$(pyenv init -)"啟動pyenv?
作者: chang0206 (Eric Chang)   2021-12-06 14:30:00
感恩一樓!似乎可行 我研究一下怎麼寫 謝謝!
作者: lycantrope (阿寬)   2021-12-06 14:41:00
作者: chang0206 (Eric Chang)   2021-12-06 14:55:00
用bash執行可以,但是用supervisor去呼叫這個script還是會出錯,繼續研究中...
作者: f496328mm (為什麼會流淚)   2021-12-06 16:51:00
用 pipenvpipenv run python以上可以同時啟動 虛擬環境 + python + 讀取.env我以前也用 supervisor,之後改成 docker
作者: TitanEric (泰坦)   2021-12-06 20:06:00
shebang #/bin/bash改指向虛擬環境中的python路徑也可以
作者: gomi (勾億郎)   2021-12-07 13:51:00
我是直接用指定環境的 python 去執行 script
作者: chang0206 (Eric Chang)   2021-12-07 13:54:00
改shebang 有用喔?等等來測試看看,謝謝。另外,我們就是從pipenv 跳過來pyenv 的..
作者: roccqqck (ccqq)   2021-12-08 08:29:00
絕對路徑指定pip跟python就好
作者: lycantrope (阿寬)   2021-12-08 08:44:00
嗯,不用啟動虛擬環境,直接抓python絕對路徑去跑
作者: roccqqck (ccqq)   2021-12-08 16:35:00
python3.9 -m venv ~/.local/venvs/myenv~/.local/venvs/myenv/bin/python3 --version~/.local/venvs/myenv/bin/pip list
作者: f416720001 (Gemini翔)   2020-01-10 19:34:00
為未來人補個conda環境解法,bash檔照常寫,啟動時採用bash -i script.sh

Links booklink

Contact Us: admin [ a t ] ucptt.com