Nano Hash - криптовалюты, майнинг, программирование

Проблемы с __future__ и swagger_client в Python

В документации Strava API приведен следующий пример кода, который я скопировал и ввел свой собственный токен доступа и идентификатор клуба:

from __future__ import print_statement
import time
import swagger_client
from swagger_client.rest import ApiException
from pprint import pprint

# Configure OAuth2 access token for authorization: strava_oauth
swagger_client.configuration.access_token = 'MY_ACCESS_TOKEN'

# create an instance of the API class
api_instance = swagger_client.ClubsApi()
id = MY_CLUB_ID # Integer | The identifier of the club.
page = 56 # Integer | Page number. (optional)
perPage = 56 # Integer | Number of items per page. Defaults to 30.     (optional) (default to 30)

try:
    # List Club Activities
    api_response = api_instance.getClubActivitiesById(id, page=page, perPage=perPage)
    pprint(api_response)
except ApiException as e:
    print("Exception when calling ClubsApi->getClubActivitiesById: %s\n" % e)

Я пытаюсь запустить его, я получаю

from __future__ import print_statement
SyntaxError: future feature print_statement is not defined

Я также вижу, что получу то же самое с моим импортом swagger_client. Я пробовал устанавливать пакеты для каждого, но это не имело никакого значения. Я читал, что для __future__ я должен быть на> Python 2.7, но сейчас я использую 3.6.

Как решить эту проблему?


  • Хороший вопрос. Честно говоря, я не совсем уверен, что это такое, но я предполагаю, что он содержит пакеты, которых нет в текущей версии Python, но которые будут в будущей версии. Я не разработчик Python и вижу это впервые, так что это может быть даже точным объяснением. 30.05.2018
  • Вам не нужно from __future__ ... в Python 3. См. как использовать from __future__ импортировать print_function 30.05.2018
  • Даже если я это прокомментирую, я получу import swagger_client ModuleNotFoundError: No module named 'swagger_client' 30.05.2018

Ответы:


1

1) В первой строке опечатка

from __future__ import print_statement
                             ^^^

так должно быть

from __future__ import print_function

Но поскольку вы используете Python 3, вам на самом деле не нужен этот импорт — подробности см. в этих вопросах и ответах.

2) swagger_client, вероятно, является клиентом Python, сгенерированным из определения Strava OpenAPI. Похоже, вам нужно сгенерировать его вручную с помощью Swagger Codegen. Есть несколько способов сделать это:

  • Вставьте определение Strava OpenAPI в https://editor.swagger.io и выберите Создать клиент > Python< /сильный>.
  • Установите версию командной строки Swagger Codegen и запустите:

    # Windows
    java -jar swagger-codegen-cli-<ver>.jar generate -i https://developers.strava.com/swagger/swagger.json -l python -o ./StravaPythonClient
    
    # Mac
    swagger-codegen generate -i https://developers.strava.com/swagger/swagger.json -l python -o ./StravaPythonClient
    
30.05.2018
  • В качестве примечания. Функция называется print_function, а не print_statement. Вы все еще можете импортировать print_function в python3.x 30.05.2018
  • @MegaIng Спасибо. Похоже, что import print_statement была опечаткой в ​​примерах, сгенерированных Codegen — github.com/swagger- API/swagger-codegen/issues/5692. 30.05.2018
  • Итак, я следовал приведенным выше указаниям, насколько мог. В итоге получилась папка с именем SwaggerPythonClient, которая содержала папку swagger_client, содержащую configuration.py и rest.py, поэтому я скопировал содержимое в каталог своей программы. Ошибки импорта теперь исчезли, но теперь я нахожу другие проблемы. Я могу исследовать и, возможно, опубликовать новый вопрос, если это необходимо, но хочу проверить, правильно ли я сделал, прежде чем продолжить. 31.05.2018
  • Для моего выше я установил несколько отсутствующих пакетов. Мое приложение теперь работает. 04.06.2018
  • Я тоже борюсь с тем, чтобы начать... не могли бы вы объяснить, какие отсутствующие пакеты вы также установили? 13.03.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..


    © 2024 nano-hash.ru, Nano Hash - криптовалюты, майнинг, программирование