我正在尝试找出为什么会看到错误
模块未找到错误:没有名为“urlparse”的模块
但我从来不在代码中调用urlparse。
当我尝试用pip安装urlparse
时,我看到这个模块不存在。当我尝试用pip安装urllib.parse
时,我看到同样的消息:
找不到urllib.parse的匹配分发
我错过了什么?
from flask import Flask, request, redirect, url_for, session, g, flash, \
render_template
from flask_oauth import OAuth
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
# configuration
SECRET_KEY = 'development key'
DEBUG = True
# setup flask
app = Flask(__name__)
app.debug = DEBUG
app.secret_key = SECRET_KEY
oauth = OAuth()
# Use Twitter as example remote app
twitter = oauth.remote_app('twitter',
base_url='https://api.twitter.com/1/',
request_token_url='https://api.twitter.com/oauth/request_token',
access_token_url='https://api.twitter.com/oauth/access_token',
authorize_url='https://api.twitter.com/oauth/authenticate',
consumer_key='',
consumer_secret=''
)
@twitter.tokengetter
def get_twitter_token(token=None):
return session.get('twitter_token')
@app.route('/')
def index():
access_token = session.get('access_token')
if access_token is None:
return redirect(url_for('login'))
access_token = access_token[0]
return render_template('templates/index.html')
if __name__ == '__main__':
app.run()
3条答案
按热度按时间dwbf0jvd1#
对于python3,我使用了
from urllib.parse import urlparse
而不是
from urlparse import parse_qsl, urlparse
,它可以工作推荐文档:https://docs.python.org/3/library/urllib.parse.html
xxls0lw82#
flask_oauth库不支持Python3 -您将从回溯中看到:
urlparse模块的行为在Python 3中有所改变:
https://docs.python.org/2/library/urlparse.html
urlparse模块在Python 3中被重命名为urllib.parse。
这个问题已经向Github上的软件包维护者提出。Github上的源代码看起来已经修复,但修复后的版本还没有推到pypi上。
Github建议的解决方案是直接从源代码安装,而不是从pypi安装:
g6ll5ycj3#
在堆栈跟踪中,查找传播ModuleNotFoundError的文件。如果它来自您自己的源文件,请重构代码,这样
urlparse
的导入方式如下:否则,请找到该文件所属的模块,然后升级该模块。