Как установить библиотеку с github?
На этой странице есть инструкция по установке библиотеки, но из-за того что она идет для разных языков програмирования я не совсем понимаю что нужно делать после того как я клонировал себе этот проект и выполнил cd mexc-api-sdk/dist/python . По инструкции нужно разархивировать файл. Пытался эти два файла (из mexc-api-sdk/dist/python) просто разархивировать через 7zip в venv/Lib/site-packages но при попытке импорта from mexc_sdk import Spot получаю ошибку
Traceback (most recent call last): File "D:\all\Programming\arbitrage_screener_tg\exchanges_api.py", line 3, in from mexc_sdk import Spot File "D:\all\Programming\arbitrage_screener_tg\venv\Lib\site-packages\mexc_sdk\__init__.py", line 498, in import jsii ModuleNotFoundError: No module named 'jsii'
Что я делаю не так? Подскажите пожалуйста.
- Вопрос задан 14 апр. 2023
- 332 просмотра
Комментировать
Решения вопроса 1

Зависимости не установлены. Вообще обрати внимание, что в папке dist/python лежит файл .whl — этот wheel можно установить через менеджер пакетов pip, просто как pip install filename.whl . Тогда pip должен сам подтянуть нужные зависимости.
Ответ написан 14 апр. 2023
Нравится 1 2 комментария
David @davider228 Автор вопроса
Установил через pip, но теперь другая ошибка
Traceback (most recent call last): File "D:\all\Programming\arbitrage_screener_tg\exchanges_api.py", line 3, in from mexc_sdk import Spot File "D:\all\Programming\arbitrage_screener_tg\venv\Lib\site-packages\mexc_sdk\__init__.py", line 502, in from ._jsii import * File "D:\all\Programming\arbitrage_screener_tg\venv\Lib\site-packages\mexc_sdk\_jsii\__init__.py", line 11, in __jsii_assembly__ = jsii.JSIIAssembly.load( ^^^^^^^^^^^^^^^^^^^^^^^ File "D:\all\Programming\arbitrage_screener_tg\venv\Lib\site-packages\jsii\_runtime.py", line 55, in load _kernel.load(assembly.name, assembly.version, os.fspath(assembly_path)) File "D:\all\Programming\arbitrage_screener_tg\venv\Lib\site-packages\jsii\_kernel\__init__.py", line 299, in load self.provider.load(LoadRequest(name=name, version=version, tarball=tarball)) File "D:\all\Programming\arbitrage_screener_tg\venv\Lib\site-packages\jsii\_kernel\providers\process.py", line 352, in load return self._process.send(request, LoadResponse) ^^^^^^^^^^^^^ File "D:\all\Programming\arbitrage_screener_tg\venv\Lib\site-packages\jsii\_utils.py", line 23, in wrapped stored.append(fgetter(self)) ^^^^^^^^^^^^^ File "D:\all\Programming\arbitrage_screener_tg\venv\Lib\site-packages\jsii\_kernel\providers\process.py", line 347, in _process process.start() File "D:\all\Programming\arbitrage_screener_tg\venv\Lib\site-packages\jsii\_kernel\providers\process.py", line 260, in start self._process = subprocess.Popen( ^^^^^^^^^^^^^^^^^ File "C:\Users\dkala\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 1024, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Users\dkala\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 1493, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [WinError 2] Не удается найти указанный файл Exception ignored in: Traceback (most recent call last): File "D:\all\Programming\arbitrage_screener_tg\venv\Lib\site-packages\jsii\_kernel\providers\process.py", line 228, in __del__ self.stop() File "D:\all\Programming\arbitrage_screener_tg\venv\Lib\site-packages\jsii\_kernel\providers\process.py", line 291, in stop assert self._process.stdin is not None ^^^^^^^^^^^^^ AttributeError: '_NodeProcess' object has no attribute '_process'
Проблема в модуле похоже, да?
Установка библиотеки Python с Github через файл requirements.txt
Программисты часто сталкиваются с необходимостью использования библиотек Python, которые не доступны в стандартном репозитории PyPI, но размещены на Github. Это может быть незавершенный проект, форк с изменениями или просто редкая библиотека, которую автор не загружает в PyPI.
Например, вы установили библиотеку с помощью команды:
pip install git+git://github.com/username/repository.git
Это работает отлично, и теперь вы хотите добавить эту библиотеку в свой requirements.txt , чтобы другие разработчики могли легко установить все зависимости вашего проекта.
Проблема
Если вы просто добавите следующие строки в файл requirements.txt :
-f git+git://github.com/username/repository.git repository==version
и попытаетесь установить зависимости с помощью команды pip install -r requirements.txt , вы получите ошибку, которая говорит, что pip не может найти указанную версию библиотеки.
Решение
Чтобы решить эту проблему, вам нужно указать ссылку на репозиторий Github прямо в строке с именем библиотеки и ее версией. Версию можно указать после символа @ в ссылке на репозиторий. Также, вы можете указать ветку, тег или коммит после символа @. Если версия не указана, pip установит последнюю версию библиотеки.
Вот как должен выглядеть requirements.txt :
git+git://github.com/username/repository.git@version#egg=repository
Теперь, когда вы запустите pip install -r requirements.txt , pip скачает и установит нужную версию библиотеки прямо из репозитория на Github.
Это решение работает не только для Github, но и для других платформ, таких как Gitlab и Bitbucket. Просто замените ссылку на репозиторий на ссылку на нужную платформу.
maksbotan / readme.md
Наш курс включает в себя решения задач на практических занятиях, а также домашние задания. Для этого вам понадобится ноутбук с Python.
Если у вас уже установлен Python и вы уверены, что умеете им пользоваться, переходите сразу к разделам «Установка нужных библиотек» и «Дополнительные материалы».
Если у вас Mac — попробуйте адаптировать эту инструкцию для себя или обратитесь за помощью к организаторам курса. Если же у вас Linux, то вы скорее всего сами всё знаете. Если что-то всё же не получается, попросите помощи в нашем чате.
Мы будем пользоваться Python 3.8. Скачать его можно по этой ссылке. Запустите скачанный файл для установки.
Рекомендуем на первом экране нажать «Customize installation»:
и на следующем выбрать «Install for all users» и «Add Python to environment variables»:
Теоретически, код на Python можно писать в любом текстовом редакторе, включая Блокнот. Однако решать задачу будет гораздо удобнее если установить специально для этого предназначенный.
Мы рекомендуем пользоваться Visual Studio Code. Скачать можно здесь.
Настройка VS Code
Нам понадобится установить расширение VS Code, включающее поддержку Python. Для этого нажмите нижнюю кнопку в левой панели (состоит из 4 квадратиков), введите в строке поиска «Python», выберите первое расширение (как на картинке ниже) и нажмите зеленую кнопку Install.

Создайте новый файл («File» -> «New File») и сохраните его с расширением .py , например hello.py .
Если всё установлено правильно, в левом нижнем углу вы увидите надпись «Python 3.8.7 64-bit». Это значит, что VS Code «увидел» Python, который вы установили.
Запуск ваших программ
Напишите в этом новом файле такой код:
print("Hello, world!")
Теперь нажмите в любом месте правой кнопкой мыши и выберите пункт «Run Python File in Terminal». Внизу экрана вы увидите окно Terminal, в котором будет напечатана строка » Hello, world! «.
Установка нужных библиотек
В наших заданиях нам понадобятся библиотеки numpy и biopython . Самый простой способ их установить — перейти в окно Terminal в VS Code и набрать там команду
pip3 install --user numpy biopython
Если эта команда не выведет никаких ошибок (красным текстом), значит вы готовы к нашему курсу!
Если вы ещё никогда не писали на Python или просто не уверены в своих знаниях, рекомендуем несколько хороших материалов.
- Самоучитель Python, в котором можно делать упражнения прямо в окна браузера: https://pythontutor.ru
- Небольшая книга-самоучитель по языку: https://pythonworld.ru/samouchitel-python
- И бесплатный видео курс по Python от Института Биоинформатики: https://stepik.org/course/67/promo
Библиотеки для REST API
You can use the official Octokit libraries and other third-party libraries to extend and simplify how you use the GitHub API.
Сведения о библиотеках
Библиотеки можно использовать для расширения и упрощения взаимодействия приложения с api GitHub. Каждая библиотека предоставляет предварительно созданный код для определенного языка программирования. После интеграции библиотеки в проект можно использовать готовые модули кода для взаимодействия с API GitHubчерез определенный язык программирования.
GitHub поддерживает официальные библиотеки Octokit для некоторых языков. Существуют также сторонние библиотеки, которые можно использовать с API GitHub, которые не поддерживаются GitHub.
Официальные библиотеки GitHub
GitHub поддерживает эти официальные клиентские библиотеки для API GitHub . Эти репозитории открытый код, и вклад сообщества приветствуется.
Дополнительные сведения см. в разделе «[AUTOTITLE» и «Скриптирование с помощью REST API и JavaScript](/rest/guides/scripting-with-the-rest-api-and-ruby)».
- JavaScript: octokit.js
- Ruby: octokit.rb
- .NET: octokit.net
- Terraform: terraform-provider-github
Сторонние библиотеки
Ниже приведены примеры сторонних библиотек, которые можно использовать для взаимодействия с API GitHub на различных языках программирования.
Эти сторонние библиотеки не поддерживаются GitHub. Библиотеки, предоставляемые третьими сторонами, регулируются отдельными условиями обслуживания, политикой конфиденциальности и документацией по поддержке.
Clojure
- Щупальцы: clj-commons/щупальцы
Dart
- github.dart: SpinlockLabs/github.dart
Emacs Lisp
- gh.el: sigma/gh.el
Go
- go-github: google/go-github
Haskell
- haskell-github: haskell-github/github
Java
- API GitHub для Java— объектно-ориентированное представление API GitHub: org.kohsuke.github (из github-api)
- API JCabi GitHub на основе API JSON Java7 (JSR-353), упрощает тесты с заглушки GitHub среды выполнения и охватывает весь API: github.jcabi.com (личный веб-сайт)
JavaScript
- Библиотека NodeJS GitHub: pksunkara/octonode
- Оболочка Github.js вокруг API GitHub: github-tools/github
- Библиотека CoffeeScript на основе обещаний для браузера или NodeJS: philschatz/github-client
Julia
- GitHub.jl: JuliaWeb/GitHub.jl
OCaml
- ocaml-github: mirage/ocaml-github
Perl
- Pithub: plu/Pithub
- Net::GitHub: fayland/perl-net-github
PHP
- API PHP GitHub: KnpLabs/php-github-api
- GitHub! Пакет: http-framework/github-api
- Мост GitHub для Laravel: ГрэмCampbell/Laravel-GitHub
PowerShell
- PowerShellForGitHub: microsoft/PowerShellForGitHub
Python
- gidgethub: gidgethub/gidgethub
- ghapi: fastai/ghapi
- PyGithub: PyGithub/PyGithub
- libsaas: duckboard/libsaas
- github3.py: сигмавирус24/github3.py
- agithub: mozilla/agithub
- github-flask: github-flask (официальный веб-сайт)
- githubkit: yanyongyu/githubkit
- octokit.py: khornberg/octokit.py
Ruby
- GitHub API Gem: piotrmurach/github
Rust
- Octocrab: XAMPPRocky/octocrab
- Octocat: octocat-rs/octocat-rs
Scala
- Github4s: 47deg/github4s
Shell
- ok.sh: уайтинг/ok.sh