源 venv/bin/activate 在 CentOS 上未返回任何内容

源 venv/bin/activate 在 CentOS 上未返回任何内容

我正在尝试在 CentOS 上部署一个 Python Flask 应用程序(用于 API 端点)用于工作,但我遵循的每个在线指南对我来说都不起作用!

python3 -m venv APIenv

环境已成功创建,但随后尝试激活它:

源 APIenv/bin/activate

不返回任何内容,既不是错误也不是激活它!

据我了解,激活它应该使 CLI 看起来像这样:

(venv)$ _

我还遇到了另一个问题:

pip3 安装 firebase_admin

这有效并且已安装,但随后运行我的应用程序:

python3 应用程序.py

回溯(最近一次调用最后一次):文件“app.py”,第 4 行,导入 firebase_admin ModuleNotFoundError:没有名为“firebase_admin”的模块

我遵循的每个在线指南都让我陷入困境,我真的需要让它工作,我做错了什么?

答案1

可能你将 pip3 链接到了你正在使用的 python3 以外的其他版本的 python(3.6、3.8 等)

确保你使用的是相同的版本,并且它在 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版本相关的问题。

firebase_admin无法使用python3.6版本安装

至少需要 python3.8(3.7 未测试)

Centos 8 的 Python38 安装及相关问题模块:

dnf install python38 python38-pip
pip38 install firebase_admin flask venv

相关内容