首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会话:无法从'flask_session‘导入名称’ImportError‘(未知位置)

会话:无法从'flask_session‘导入名称’ImportError‘(未知位置)
EN

Stack Overflow用户
提问于 2020-05-22 07:16:27
回答 1查看 2.4K关注 0票数 0

我有以下来自CS50w的代码,文件是application.py

代码语言:javascript
复制
import os
from flask import Flask, session
from flask_session import Session
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker

app = Flask(__name__)

# Check for environment variable
if not os.getenv("DATABASE_URL"):
    raise RuntimeError("DATABASE_URL is not set")

# Configure session to use filesystem
app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
Session(app)

# Set up database
engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))

但是,当我点击python3 application.py时,出现了以下错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "application.py", line 3, in <module>
    from flask_session import Session
ImportError: cannot import name 'Session' from 'flask_session' (unknown location)

我确信我已经安装了所有的包

代码语言:javascript
复制
~/Documents/cs50_web/project1 » pip3 install Flask-Session                                                                                                              macone@Macs-MacBook-Pro
Requirement already satisfied: Flask-Session in /usr/local/lib/python3.7/site-packages (0.3.2)
Requirement already satisfied: cachelib in /usr/local/lib/python3.7/site-packages (from Flask-Session) (0.1)
Requirement already satisfied: Flask>=0.8 in /usr/local/lib/python3.7/site-packages (from Flask-Session) (1.1.2)
Requirement already satisfied: Werkzeug>=0.15 in /usr/local/lib/python3.7/site-packages (from Flask>=0.8->Flask-Session) (1.0.1)
Requirement already satisfied: click>=5.1 in /usr/local/lib/python3.7/site-packages (from Flask>=0.8->Flask-Session) (7.1.2)
Requirement already satisfied: Jinja2>=2.10.1 in /usr/local/lib/python3.7/site-packages (from Flask>=0.8->Flask-Session) (2.11.2)
Requirement already satisfied: itsdangerous>=0.24 in /usr/local/lib/python3.7/site-packages (from Flask>=0.8->Flask-Session) (0.24)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.7/site-packages (from Jinja2>=2.10.1->Flask>=0.8->Flask-Session) (1.1.1)

同样的事情也发生在sqlalchemy上,但它的结果略有不同

代码语言:javascript
复制
Traceback (most recent call last):
  File "import.py", line 2, in <module>
    from sqlalchemy import create_engine
ModuleNotFoundError: No module named 'sqlalchemy'

但它也安装了

代码语言:javascript
复制
~/Documents/cs50_web/project1 » pip3 install sqlalchemy                                                                                          macone@Macs-MacBook-Pro
Requirement already satisfied: sqlalchemy in /usr/local/lib/python3.7/site-packages (1.3.17)

奇怪的是,flask run确实可以工作。

我使用的是vscode和python3.7.4-64bit。我该如何解决这个问题呢?

这是我的pip3 freeze

代码语言:javascript
复制
~/Documents/cs50_web/project1 » pip3 freeze                                                                                                  1 ↵ macone@Macs-MacBook-Pro
astroid==2.3.3
attrs==19.3.0
autopep8==1.5.2
cachelib==0.1
certifi==2020.4.5.1
cffi==1.14.0
chardet==3.0.4
click==7.1.2
cryptography==2.9.2
cycler==0.10.0
entrypoints==0.3
flake8==3.7.9
Flask==1.1.2
Flask-Session==0.3.2
idna==2.9
isort==4.3.21
itsdangerous==0.24
jellyfish==0.7.2
Jinja2==2.11.2
lazy-object-proxy==1.4.3
lib50==2.0.8
MarkupSafe==1.1.1
matplotlib==3.1.2
mccabe==0.6.1
numpy==1.17.4
pexpect==4.8.0
psycopg2-binary==2.8.5
ptyprocess==0.6.0
pycodestyle==2.5.0
pycparser==2.20
pydocstyle==4.0.1
pyflakes==2.1.1
pylama==7.7.1
pylint==2.4.4
pyparsing==2.4.5
python-dateutil==2.8.1
PyYAML==5.3.1
requests==2.23.0
six==1.13.0
snowballstemmer==2.0.0
SQLAlchemy==1.3.17
submit50==3.0.2
termcolor==1.1.0
typed-ast==1.4.0
urllib3==1.25.9
Werkzeug==1.0.1
wrapt==1.11.2

setting.json

代码语言:javascript
复制
{
  "kite.showWelcomeNotificationOnStartup": false,
  "workbench.activityBar.visible": false,
  "explorer.confirmDelete": false,
  "workbench.colorTheme": "Expressive Theme",
  "workbench.iconTheme": "vscode-icons",
  "css.remoteStyleSheets": [
    "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css"
  ],
  "git.confirmSync": false,
  "python.jediEnabled": false,
  "markdown-preview-enhanced.liveUpdate": true,
  "window.zoomLevel": 1,
  "C_Cpp.updateChannel": "Insiders",
  "files.associations": {
    "*.rmd": "rmd"
    // "*.html": "jinja-html"
  },
  "files.autoSave": "afterDelay",
  "explorer.confirmDragAndDrop": false,
  "editor.formatOnSave": true,
  "liveServer.settings.donotVerifyTags": true,
  "liveServer.settings.donotShowInfoMsg": true
}

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-12-03 04:18:53

发生导入错误可能是由于虚拟环境问题。你必须使用相同的虚拟环境对你的web应用程序进行任何类型的操作。试试这个:

1. Go to "Web"

2. Scroll Down to "Virtualenv:"

3. Click on "Start a console in this virtualenv"

现在在这里使用你的命令,比如使用pip安装任何模块,或者启动Django/flask shell。

查看更多Here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61945300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档