Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Авторизация #4

Open
Vponed opened this issue Jan 11, 2021 · 14 comments
Open

Авторизация #4

Vponed opened this issue Jan 11, 2021 · 14 comments

Comments

@Vponed
Copy link

Vponed commented Jan 11, 2021

Простите, а авторизация но мосбирже поддерживается?

@WLM1ke
Copy link
Owner

WLM1ke commented Jan 11, 2021

В тех запросах, которые реализованы, она не нужна, поэтому не поддерживается.

@madby31
Copy link

madby31 commented Nov 12, 2022

На версиях 3.7, 3.9, 3.10 с установленными пакетами aiomoex выдает одинаковую ошибку:
AttributeError: module 'aiomoex' has no attribute 'ISSClient'

@WLM1ke
Copy link
Owner

WLM1ke commented Nov 13, 2022

Я каждый день пользуюсь на 3.10 и все работает. Думаю, что-то у вас неправильно установлено. Приведите минимальный код, который воспроизводит эту ошибку с полным трейсбеком, может удастся понять, в чем проблема

@madby31
Copy link

madby31 commented Nov 13, 2022

import asyncio
import aiohttp
import aiomoex
import pandas as pd

async def main():
    request_url = "https://iss.moex.com/iss/engines/stock/" "markets/shares/boards/TQBR/securities.json"
    arguments = {"securities.columns": ("SECID," "REGNUMBER," "LOTSIZE," "SHORTNAME")}
    async with aiohttp.ClientSession() as session:
        iss = aiomoex.ISSClient(session, request_url, arguments)
        data = await iss.get()
        df = pd.DataFrame(data["securities"])
        df.set_index("SECID", inplace=True)
        print(df.head(), "\n")
        print(df.tail(), "\n")
        df.info()
asyncio.run(main())

Вывод

Traceback (most recent call last):
  File "C:\MOEX\aiomoex.py", line 5, in <module>
    import aiomoex
  File "C:\MOEX\aiomoex.py", line 23, in <module>
    asyncio.run(main())
  File "C:\Python3\lib\asyncio\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "C:\Python3\lib\asyncio\base_events.py", line 642, in run_until_complete
    return future.result()
  File "C:\MOEX\aiomoex.py", line 14, in main
    iss = aiomoex.ISSClient(session, request_url, arguments)
AttributeError: partially initialized module 'aiomoex' has no attribute 'ISSClient' (most likely due to a circular import)

@madby31
Copy link

madby31 commented Nov 13, 2022

C:\Windows\System32>pip install aiomoex
Requirement already satisfied: aiomoex in c:\python310\lib\site-packages (2.0.0)
Requirement already satisfied: aiohttp in c:\python310\lib\site-packages (from aiomoex) (3.8.3)
Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in c:\python310\lib\site-packages (from aiohttp->aiomoex) (4.0.2)
Requirement already satisfied: frozenlist>=1.1.1 in c:\python310\lib\site-packages (from aiohttp->aiomoex) (1.3.1)
Requirement already satisfied: multidict<7.0,>=4.5 in c:\python310\lib\site-packages (from aiohttp->aiomoex) (6.0.2)
Requirement already satisfied: charset-normalizer<3.0,>=2.0 in c:\python310\lib\site-packages (from aiohttp->aiomoex) (2.1.1)
Requirement already satisfied: yarl<2.0,>=1.0 in c:\python310\lib\site-packages (from aiohttp->aiomoex) (1.8.1)
Requirement already satisfied: aiosignal>=1.1.2 in c:\python310\lib\site-packages (from aiohttp->aiomoex) (1.2.0)
Requirement already satisfied: attrs>=17.3.0 in c:\python310\lib\site-packages (from aiohttp->aiomoex) (22.1.0)
Requirement already satisfied: idna>=2.0 in c:\python310\lib\site-packages (from yarl<2.0,>=1.0->aiohttp->aiomoex) (3.4)

@madby31
Copy link

madby31 commented Nov 13, 2022

Скриншот 13-11-2022 11 59 06

@WLM1ke
Copy link
Owner

WLM1ke commented Nov 13, 2022

Такое впечатление, что у вас конфликт имен:

  • ваш файл называется C:\MOEX\aiomoex.py, если я правильно понял
  • библиотека называется aiomoex

Как следствие питон пытается не из библиотеки брать ISSClient, а из вашего же файла, в результате получается циклическая зависимость (circular import). Назовите файл по-другому и попытайтесь выполнить.

@madby31
Copy link

madby31 commented Nov 13, 2022

Спасибо большое! Получилось!

@madby31
Copy link

madby31 commented Nov 13, 2022

Еще подскажите, пожалуйста! Как победить: RuntimeError: Event loop is closed

@WLM1ke
Copy link
Owner

WLM1ke commented Nov 13, 2022

Слишком абстрактный вопрос, где-то вы видимо eventloop закрываете. Без конкретного примера кода могу только гадать - например функция asyncio.run закрывает eventloop.

PS: мой вам совет, если вы не очень знаете asyncio, то легче воспользоваться библиотекой apimoex, а не мучаться с асинхронным программированием.

@madby31
Copy link

madby31 commented Nov 13, 2022

Решил сам, но это только для Windows.
Перед вызовом: asyncio.run(main()) добавить строку
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

@madby31
Copy link

madby31 commented Nov 13, 2022

Запросы к бирже я сам формирую, объемы запросов выросли и я вспомнил про Вашу библиотеку, ускоряющую получение запросов. Еще раз спасибо!

@Pavel26ru
Copy link

Добрый день
Не могу авторизоваться на бирже по ссылке: https://passport.moex.com/authenticate из документации
Передаю в заголовке логин и пароль, но получаю ошибку 403
Подскажите, с чем это связано?

@WLM1ke
Copy link
Owner

WLM1ke commented Jun 21, 2023

Я не представитель биржи - наверное вам там лучше напрямую спросить

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants