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

看板Python作者 (Eric Chang)時間2年前 (2021/12/06 14:11), 編輯推噓5(5014)
留言19則, 6人參與, 2年前最新討論串1/1
最近在測試一個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 --name mini2 --workers 8 \ --workers 8 --bind=unix:/tmp/run/mini2.socket \ --log-level=debug --log-file=- 錯誤訊息如下 Failed to activate virtualenv. Perhaps pyenv-virtualenv has not been loaded into your shell properly. Please restart current shell and try again. 可是如前面說的,我如果登入ssh console 一行一行執行script 內的指令 是可以正常跑起來的 想請問各位先進,要怎麼在bash script 裡面啟動pyenv 做的虛擬環境? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.238.51.144 (日本) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1638771100.A.C85.html

12/06 14:23, 2年前 , 1F
先eval "$(pyenv init -)"啟動pyenv?
12/06 14:23, 1F

12/06 14:30, 2年前 , 2F
感恩一樓!似乎可行 我研究一下怎麼寫 謝謝!
12/06 14:30, 2F

12/06 14:41, 2年前 , 3F

12/06 14:55, 2年前 , 4F
用bash執行可以,但是用supervisor去呼叫這個script
12/06 14:55, 4F

12/06 14:55, 2年前 , 5F
還是會出錯,繼續研究中...
12/06 14:55, 5F

12/06 16:51, 2年前 , 6F
用 pipenv
12/06 16:51, 6F

12/06 16:51, 2年前 , 7F
pipenv run python
12/06 16:51, 7F

12/06 16:52, 2年前 , 8F
以上可以同時啟動 虛擬環境 + python + 讀取.env
12/06 16:52, 8F

12/06 16:52, 2年前 , 9F
我以前也用 supervisor,之後改成 docker
12/06 16:52, 9F

12/06 20:06, 2年前 , 10F
shebang #/bin/bash改指向虛擬環境中的python路徑也可
12/06 20:06, 10F

12/06 20:06, 2年前 , 11F
12/06 20:06, 11F

12/07 13:51, 2年前 , 12F
我是直接用指定環境的 python 去執行 script
12/07 13:51, 12F

12/07 13:54, 2年前 , 13F
改shebang 有用喔?等等來測試看看,謝謝。另外,我們
12/07 13:54, 13F

12/07 13:54, 2年前 , 14F
就是從pipenv 跳過來pyenv 的..
12/07 13:54, 14F

12/08 08:29, 2年前 , 15F
絕對路徑指定pip跟python就好
12/08 08:29, 15F

12/08 08:44, 2年前 , 16F
嗯,不用啟動虛擬環境,直接抓python絕對路徑去跑
12/08 08:44, 16F

12/08 16:35, 2年前 , 17F
python3.9 -m venv ~/.local/venvs/myenv
12/08 16:35, 17F

12/08 16:36, 2年前 , 18F
~/.local/venvs/myenv/bin/python3 --version
12/08 16:36, 18F

12/08 16:36, 2年前 , 19F
~/.local/venvs/myenv/bin/pip list
12/08 16:36, 19F
文章代碼(AID): #1XhQcSo5 (Python)