Centos

source venv/bin/activate 在 CentOS 上沒有返回任何東西

  • October 6, 2021

我正在嘗試在 CentOS 上部署 Python Flask 應用程序(用於 API 端點)以進行工作,但我遵循的每個線上指南都不適合我!

python3 -m venv APIenv

環境已成功創建,但隨後嘗試啟動它:

源 APIenv/bin/啟動

什麼都不返回,既不是錯誤也不是啟動它!

據我了解,啟動它應該使 CLI 看起來像這樣:

(venv) $ _

我還有一個問題:

pip3 安裝 firebase_admin

這有效並且已安裝,但隨後執行我的應用程序:

python3 應用程序.py

回溯(最後一次呼叫):文件“app.py”,第 4 行,在 import firebase_admin ModuleNotFoundError:沒有名為“firebase_admin”的模組

我遵循的每個線上指南都讓我卡在這裡,我真的需要讓它工作,我做錯了什麼?

可能您將 pip3 連結到另一個版本的 python(3.6、3.8 等)而不是您正在使用的 python3

確保您使用的是相同的版本,並且它在 venv 實際上檢查 python3

# python3 -V
Python 3.8.6
# which python3
/tmp/APIenv/bin/python3
# ls -laht /tmp/APIenv/bin/python3
lrwxrwxrwx 1 root root 8 Sep 30 13:59 /tmp/APIenv/bin/python3 -> python38

檢查 pip3

# pip3 -V
pip 19.3.1 from /tmp/APIenv/lib64/python3.8/site-packages/pip (python 3.8)
# which pip3
/tmp/APIenv/bin/pip3
# ls -laht /tmp/APIenv/bin/pip3
-rwxr-xr-x 1 root root 225 Sep 30 13:59 /tmp/APIenv/bin/pip3

有時即使在 VENV 下也可能看起來如此:

#  which python38
/tmp/APIenv/bin/python38
# ls -laht /tmp/APIenv/bin/python38
lrwxrwxrwx 1 root root 17 Sep 30 13:59 /tmp/APIenv/bin/python38 -> /usr/bin/python38

然後檢查您的 pip 和 python 解釋器的路徑,以確保您可以通過 venv 的絕對路徑使用它

更新:

與python3.6版本相關的問題。

python3.6版本無法安裝firebase_admin

至少需要python3.8(3.7未測試)

Centos 8 和相關問題模組的 Python38 安裝:

dnf install python38 python38-pip
pip38 install firebase_admin flask venv

引用自:https://serverfault.com/questions/1079142