【发布时间】:2020-08-16 09:23:41
【问题描述】:
基本数据:
❯ python --version
Python 3.8.2
我有一个包含一些模块的 Python 项目。我使用venv,通常我从头开始这样做:
❯ deactivate; rm -rf .venv && python -m venv .venv && source .venv/bin/activate && pip install --upgrade pip wheel setuptools --no-cache-dir # re-create venv
并安装我的包:
❯ pip install . --no-cache-dir
我的 setup.py 文件包含以下内容:
...
# dependencies
install_requires=[
"Flask==1.1.2",
"marshmallow-sqlalchemy==0.22.3",
"gunicorn==20.0.4"
],
...
所有命令都正确执行。
但是当我执行我的 Flask 程序时(有或没有gunicorn),我得到这个错误:
...
from marshmallow_sqlalchemy import SQLAlchemyAutoSchema
ModuleNotFoundError: No module named 'marshmallow_sqlalchemy'
...
这对我来说没有意义,因为看看这些命令。 1. pip 不会说谎:
❯ pip list
Package Version
---------------------- -------
click 7.1.2
Flask 1.1.2
my-package 0.0.1
gunicorn 20.0.4
itsdangerous 1.1.0
Jinja2 2.11.2
MarkupSafe 1.1.1
marshmallow 3.5.2
marshmallow-sqlalchemy 0.22.3
pip 20.1
setuptools 46.1.3
SQLAlchemy 1.3.16
Werkzeug 1.0.1
wheel 0.34.2
这对我来说简直是致命的......这个直接解释器命令没有给出任何错误:
❯ python -c "from marshmallow_sqlalchemy import SQLAlchemyAutoSchema"
我做错了什么?
【问题讨论】:
-
也许可以试试
python -m pip install <module>。这是一个经典的解决方案,(有时)有效。 -
你确定你的 pip 给你来自 venv 的包吗?你可以试试
which pip吗? -
@Biarys 100% 确定,看看我的命令的结果。
-
你用不同的 Python 运行你的烧瓶应用程序,也许是全局的。
-
@phd 不,我检查过,我激活了 venv。无论如何,它会更快地失败。
标签: python python-3.x pip setuptools