Нет модуля с именем urlparse, но я не использую urlparse

Я пытаюсь понять, почему вижу ошибку ModuleNotFoundError: No module named 'urlparse', но никогда не вызываю urlparse в своем коде. когда я пытаюсь установить urlparse с помощью pip, я вижу, что этого модуля не существует. Когда я пытаюсь установить urllib.parse с помощью pip, я вижу то же сообщение с urllib.parse. No matching distribution found for 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()

Можно опубликовать всю трассировку? Возможно, какой-то используемый вами пакет не поддерживает Python3. Пожалуйста, проверьте это вопрос

stamaimer 03.05.2018 05:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
10
1
30 781
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Библиотека flask_oauth не поддерживает Python3 - вы увидите из трассировки:

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'

В Python 3 было изменено поведение модуля urlparse:

https://docs.python.org/2/library/urlparse.html

The urlparse module is renamed to urllib.parse in Python 3.

Этот вопрос был поднят с сопровождающими пакета на Github. Исходный код на Github выглядит исправленным, но исправленная версия не была перенесена в pypi.

Решение, предлагаемое на Github, - это установка напрямую из источника вместо pypi:

pip install git+https://github.com/mitsuhiko/flask-oauth

flask-oauth теперь говорит, что он не поддерживается, и вместо этого использовать Flask-Dance

PuppyKhan 09.01.2020 20:34

Для python3 я использовал

from urllib.parse import urlparse

вместо from urlparse import parse_qsl, urlparse и работает

рекомендуемый документ: https://docs.python.org/3/library/urllib.parse.html

На самом деле это вопрос о flask_oauth, а не urlparse. Этот ответ не поможет, если кто-то не собирается переписывать исходный код библиотеки (вместо установки из git, как предполагает другой ответ).

Ignatius 31.07.2019 07:35

В трассировке стека найдите, какой файл распространяет ошибку ModuleNotFoundError. Если это из одного из ваших собственных исходных файлов, выполните рефакторинг кода, чтобы urlparse импортировался следующим образом:

urllib.parse import urlparse

В противном случае найдите модуль, которому принадлежит этот файл. Затем обновите этот модуль.

pip install --upgrade [module-name]

Другие вопросы по теме