Python 运行解释器时导入某些模块时出错
基本数据:Python 运行解释器时导入某些模块时出错,python,python-3.x,pip,setuptools,Python,Python 3.x,Pip,Setuptools,基本数据: ❯ 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
❯ 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
My 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 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
和pip
二进制文件的一切都可以:
❯ which python
{project_folder}/.venv/bin/python
❯ which pip
{project_folder}/.venv/bin/pip
但是flask
和gunicorn
变量不:
❯ which gunicorn
{HOME}/.pyenv/shims/gunicorn
❯ which flask
{HOME}/.pyenv/shims/flask
这里我需要解释一下,我使用它来控制我的Python版本
这么说,我可以使用显式venv
二进制文件、flask
和gunicorn
正确执行我的应用程序
无论如何,我想了解为什么
pyenv
没有使用正确的venv
二进制文件…谢谢你的评论,它迫使我进行更多的调查!我找到了解释。关于python
和pip
二进制文件的一切都可以:
❯ which python
{project_folder}/.venv/bin/python
❯ which pip
{project_folder}/.venv/bin/pip
但是flask
和gunicorn
变量不:
❯ which gunicorn
{HOME}/.pyenv/shims/gunicorn
❯ which flask
{HOME}/.pyenv/shims/flask
这里我需要解释一下,我使用它来控制我的Python版本
这么说,我可以使用显式venv
二进制文件、flask
和gunicorn
正确执行我的应用程序
无论如何,我想了解为什么
pyenv
没有使用正确的venv
二进制文件…也许可以尝试python-mpip安装
。这是一个经典的解决方案,有时会奏效。你确定你的pip会给你来自venv的包吗?你能试试哪个pip吗?@Biarys 100%确定,看看我的命令的结果。你用不同的Python运行你的flask应用程序,可能是全局的。@phd不,我检查了,我激活了venv。无论如何,它会很快失败。也许可以尝试python-mpip安装。这是一个经典的解决方案,有时会奏效。你确定你的pip会给你来自venv的包吗?你能试试哪个pip吗?@Biarys 100%确定,看看我的命令的结果。你用不同的Python运行你的flask应用程序,可能是全局的。@phd不,我检查了,我激活了venv。无论如何,它会很快失败。