我正在尝试在 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