Python 3.x 没有名为';urlparse';但是我';我不使用urlparse

Python 3.x 没有名为';urlparse';但是我';我不使用urlparse,python-3.x,flask,urlparse,Python 3.x,Flask,Urlparse,我试图弄清楚为什么我看到一个错误ModuleNotFoundError:没有名为“urlparse”的模块,但我从来没有在代码中调用urlparse。当我尝试用pip安装URLPRASE时,我发现这个模块不存在。当我尝试用pip安装urllib.parse时,我看到了与urllib.parse相同的消息找不到urllib.parse的匹配分发版 我错过了什么 from flask import Flask, request, redirect, url_for, session, g, flas

我试图弄清楚为什么我看到一个错误
ModuleNotFoundError:没有名为“urlparse”的模块
,但我从来没有在代码中调用urlparse。当我尝试用pip安装URLPRASE时,我发现这个模块不存在。当我尝试用pip安装urllib.parse时,我看到了与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')


flask_oauth库不支持Python 3-您将从回溯中看到:

Traceback (most recent call last):
  File "app.py", line 3, in <module>
    from flask_oauth import OAuth
  File "/Users/matthealy/virtualenvs/test/lib/python3.6/site-packages/flask_oauth.py", line 13, in <module>
    from urlparse import urljoin
ModuleNotFoundError: No module named 'urlparse'

对于python3,我使用了

从urllib.parse导入urlparse

URLPRASE,而不是URLPRASE import parse_qsl中的
,它可以工作


推荐文档:

在堆栈跟踪中,查找传播ModuleNotFoundError的文件。如果它来自您自己的一个源文件,请重构您的代码,以便导入
urlparse
,如下所示:

urllib.parse import urlparse
否则,请查找该文件所属的模块。然后升级该模块

pip install --upgrade [module-name]

你能把所有的追踪都贴出来吗?可能您使用的某些软件包不支持Python3。请检查这一点,这实际上是一个关于flask_oauth的问题,而不是urlparse。除非有人重写库源代码(而不是像另一个答案所建议的那样从git安装),否则这个答案不会有帮助。flask oauth现在说它是未维护的,而是使用flask Dance
urllib.parse import urlparse
pip install --upgrade [module-name]