Я пытаюсь использовать PyGitHub и получаю сообщение «ImportError: нет модуля с именем github».
Характеристики установки:
macOS v10.13.6
Python v3.7.0
Установлен с помощью pip v18.0
Измените текущий каталог и попробуйте еще раз?
Вы имеете в виду просто переместить сценарий в другой каталог и повторить попытку? Если вы это имели в виду, я пробовал, но ничего не изменилось.
Имя вашего скрипта тоже "github"?
Нет, сценарий Python не называется «github».
Поскольку я вообще не использовал библиотеку, я просто пытался использовать образец кода, предоставленный в README.md
@JosephTLyons Вы запускали $ pip install pygithub
перед попыткой использования библиотеки?
Да. И если я запускаю его снова, я получаю эти сообщения, подтверждающие это.
Josephs-MBP-15:~ josephlyons$ pip install pygithub
Requirement already satisfied: pygithub in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (1.40)
Requirement already satisfied: requests>=2.14.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from pygithub) (2.19.1)
Requirement already satisfied: pyjwt in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from pygithub) (1.6.4)
Requirement already satisfied: urllib3<1.24,>=1.21.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from requests>=2.14.0->pygithub) (1.23)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from requests>=2.14.0->pygithub) (3.0.4)
Requirement already satisfied: certifi>=2017.4.17 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from requests>=2.14.0->pygithub) (2018.4.16)
Requirement already satisfied: idna<2.8,>=2.5 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from requests>=2.14.0->pygithub) (2.7)
Привет, @JosephTLyons , вы установили py2 и py3 вместе в свой MBP?
Если вы это сделаете, убедитесь, что ваша конфигурация интерпретатора IDE такая же, как и ваша установка pip.
как на картинке ниже
и моя конфигурация интерпретатора IDE
@JosephTLyons Попробуйте запустить сценарий на терминале .... Если это успешно, ваша IDE настроена неправильно
У меня есть как python 2 (версия Apple, поставляемая с их Mac), так и python3 (установленная через Homebrew).
Кроме того, я запускаю сценарий через Терминал, я не использую IDE. Я кодирую строго с помощью Atom, а затем запускаю с помощью терминала.
Потерпите меня, хотя я не новый программист, я новичок в Python, и это один из первых модулей Python, которые я пытался использовать, но у меня не получилось.
У меня та же проблема. Я создал виртуальную среду и попытался установить PyGithub с помощью pip install PyGithub. Я получил: Требование уже выполнено (для обновления используйте --upgrade): pygithub в /myvenv/lib/python3.5/site-packages
Требование уже выполнено (используйте --upgrade для обновления): запросы> = 2.14.0 в /myvenv/lib/python3.5/site-packages (из pygithub)
Требование уже выполнено (используйте --upgrade для обновления): pyjwt в /myvenv/lib/python3.5/site-packages (из pygithub)
Требование уже выполнено (используйте -upgrade для обновления): idna <2.8,> = 2.5 в /myvenv/lib/python3.5/site-packages (из запросов> = 2.14.0-> pygithub)
Требование уже выполнено (используйте -upgrade для обновления): chardet <3.1.0,> = 3.0.2 в /myvenv/lib/python3.5/site-packages (из запросов> = 2.14.0-> pygithub)
Требование уже выполнено (используйте --upgrade для обновления): certifi> = 2017.4.17 в /myvenv/lib/python3.5/site-packages (из запросов> = 2.14.0-> pygithub)
Требование уже выполнено (используйте -upgrade для обновления): urllib3 <1.24,> = 1.21.1 в /myvenv/lib/python3.5/site-packages (из запросов> = 2.14.0-> pygithub)
Я попытался импортировать библиотеку с помощью python через терминал, но ... безуспешно
Решает ли проблему виртуальный Python 2?
Там, где он будет использоваться, python 2 не используется из-за конфликта.
Похоже, это одна неприятная известная проблема, позвольте мне изучить и попытаться исправить.
Может быть проблема PIP?
Я помню, у меня была эта проблема (с другим модулем) на Linux Mate.
Если это все еще проблема, установите pip из последней основной ветки, где я только что исправил проблему с импортом в de6b713b0.
Также стоит ознакомиться с комментариями в № 314.
Та же проблема.
Попробуйте установить pygithub с помощью этой команды: python -m pip install pygithub
Это гарантирует, что вы используете pip, связанный с интерпретатором python, с которым вы запускаете скрипт.
я сделал это:
python3 -m venv myvenv
Я активировал среду, а затем:
python -m pip install pygithub
Collecting pygithub
Downloading https://files.pythonhosted.org/packages/91/9e/50af4bb0ab316fedc13ae87347a718c19698ba8a19e64a692dc30c5fc9db/PyGithub-1.43.2.tar.gz (2.7MB)
100% |████████████████████████████████| 2.7MB 647kB/s
Collecting requests>=2.14.0 (from pygithub)
Using cached https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Collecting pyjwt (from pygithub)
Using cached https://files.pythonhosted.org/packages/93/d1/3378cc8184a6524dc92993090ee8b4c03847c567e298305d6cf86987e005/PyJWT-1.6.4-py2.py3-none-any.whl
Collecting Deprecated (from pygithub)
Downloading https://files.pythonhosted.org/packages/83/2d/7a5a117eccdef0cdf4cf015830945a7d8fdbbc9ec866d7cead758dc4229c/Deprecated-1.2.3-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests>=2.14.0->pygithub)
Downloading https://files.pythonhosted.org/packages/df/f7/04fee6ac349e915b82171f8e23cee63644d83663b34c539f7a09aed18f9e/certifi-2018.8.24-py2.py3-none-any.whl (147kB)
100% |████████████████████████████████| 153kB 3.3MB/s
Collecting urllib3<1.24,>=1.21.1 (from requests>=2.14.0->pygithub)
Using cached https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests>=2.14.0->pygithub)
Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting idna<2.8,>=2.5 (from requests>=2.14.0->pygithub)
Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl
Collecting wrapt<2,>=1 (from Deprecated->pygithub)
Downloading https://files.pythonhosted.org/packages/a0/47/66897906448185fcb77fc3c2b1bc20ed0ecca81a0f2f88eda3fc5a34fc3d/wrapt-1.10.11.tar.gz
Building wheels for collected packages: pygithub, wrapt
Running setup.py bdist_wheel for pygithub ... error
Complete output from command /home/leonardo/phub/myvenv/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-yww1918p/pygithub/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpx2l6hyczpip-wheel- --python-tag cp35:
/usr/lib/python3.5/distutils/dist.py:261: UserWarning: Unknown distribution option: 'python_requires'
warnings.warn(msg)
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: invalid command 'bdist_wheel'
----------------------------------------
Failed building wheel for pygithub
Running setup.py clean for pygithub
Running setup.py bdist_wheel for wrapt ... error
Complete output from command /home/leonardo/phub/myvenv/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-yww1918p/wrapt/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmp4kz97gl4pip-wheel- --python-tag cp35:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: invalid command 'bdist_wheel'
----------------------------------------
Failed building wheel for wrapt
Running setup.py clean for wrapt
Failed to build pygithub wrapt
Installing collected packages: certifi, urllib3, chardet, idna, requests, pyjwt, wrapt, Deprecated, pygithub
Running setup.py install for wrapt ... done
Running setup.py install for pygithub ... done
Successfully installed Deprecated-1.2.3 certifi-2018.8.24 chardet-3.0.4 idna-2.7 pygithub-1.43.2 pyjwt-1.6.4 requests-2.19.1 urllib3-1.23 wrapt-1.10.11
You are using pip version 8.1.1, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Я попытался запустить скрипт с помощью pygithub, и он не вернул никаких ошибок.
хорошо попробовать сначала запустить сценарий из командной строки виртуальной среды.
Это может быть вызвано относительным импортом. Python 3 требует абсолютного импорта. Это должно быть исправлено с помощью # 967.
sudo pip3 install pygithub
у меня сработало.
это ломается в python 3.7+, но работает в 3.6.5 FYI
хотя не уверен, что это проблема с пипсом, поскольку 3.7.2 использует пип 18, а 3.6.5 использует 9.x
это ломается в python 3.7
Согласен, только что протестировал. При использовании Python 3.7+ появляется следующая ошибка:
Traceback (most recent call last):
File "scripts/src/create_release.py", line 6, in <module>
from github.Milestone import Milestone
ModuleNotFoundError: No module named 'github'
Использование Python 3.6 отлично работает.
Это все еще не работает на Python 3.7 ??? Я все еще получаю ошибку при импорте?
@ conoroshea1996 они отказывались исправить это в прошлом, несмотря на многочисленные PR, чтобы исправить это.
У меня такая же проблема, когда я использую Pycharm в Mac OS, но у меня нет этой проблемы, когда я использую Jupyter в Mac OS. И у меня нет этой проблемы при использовании Pycharm или Jupyter в Windows.
+1
Python 3.7.4 Я получаю ту же ошибку.
@ p3nda Это почти наверняка не та проблема, о которой сообщалось ранее. Вы можете показать полную ошибку?
Привет @stevenk!
Конечно:
python3 --version
Python 3.7.4
Я получил:
ImportError: невозможно импортировать имя Github из github (/usr/local/lib/python3.7/site-packages/github/__init__.py)
Я подумал, что эта ошибка немного отличается, поэтому после некоторого безуспешного устранения неполадок я развернул контейнер докеров, установил python3.6 и попытался использовать его:
ImportError: невозможно импортировать имя Github
python3 --version
Python 3.6.9
@ p3nda На какой платформе?
@stevenk Для первой ошибки на python3.7.4 я использую macos mojave 10.14.6. В контейнере докера с python 3.6.9 я использую Ubuntu 18.04.3
Так что странно, что делает:
>>> import github
>>> github.__file__
'/home/steven/PyGithub/github/__init__.py'
>>> dir(github.MainClass)
['AuthenticatedUser', 'Consts', 'DEFAULT_BASE_URL', 'DEFAULT_PER_PAGE', 'DEFAULT_STATUS_URL', 'DEFAULT_TIMEOUT', 'Github', 'GithubException', 'GithubIntegration', 'GitignoreTemplate', 'HookDescription', 'Installation', 'InstallationAuthorization', 'RateLimit', 'Repository', 'Requester', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'datetime', 'github', 'jwt', 'pickle', 'requests', 'time', 'urllib3']
>>> github.MainClass.__file__
'/home/steven/PyGithub/github/MainClass.py'
дать тебе?
И from github.MainClass import Github
извините
В контейнере Docker Ubuntu 18.04:
импортировать github
Отслеживание (последний вызов последний):
Файл "", строка 1, в
Файл "/usr/local/lib/python3.6/dist-packages/github/__init__.py", строка 44, в
из github.MainClass import Github, GithubIntegration
Файл "/usr/local/lib/python3.6/dist-packages/github/MainClass.py", строка 58, в
запросы на импорт
Файл "/usr/local/lib/python3.6/dist-packages/requests/__init__.py", строка 112, в
из . импорт утилит
Файл "/usr/local/lib/python3.6/dist-packages/requests/utils.py", строка 26, в
from ._internal_utils импортировать в_native_string
Файл "/usr/local/lib/python3.6/dist-packages/requests/_internal_utils.py", строка 11, в
из .compat import is_py2, builtin_str, str
Файл "/usr/local/lib/python3.6/dist-packages/requests/compat.py", строка 59, в
из http import cookiejar как cookielib
Файл "/usr/lib/python3.6/http/cookiejar.py", строка 31, в
импортная копия
Файл "/copy.py", строка 2, в
из github импортировать Github
ImportError: невозможно импортировать имя Github
из github.MainClass import Github
Отслеживание (последний вызов последний):
Файл "", строка 1, в
Файл "/usr/local/lib/python3.6/dist-packages/github/__init__.py", строка 44, в
из github.MainClass import Github, GithubIntegration
Файл "/usr/local/lib/python3.6/dist-packages/github/MainClass.py", строка 58, в
запросы на импорт
Файл "/usr/local/lib/python3.6/dist-packages/requests/__init__.py", строка 112, в
из . импорт утилит
Файл "/usr/local/lib/python3.6/dist-packages/requests/utils.py", строка 26, в
from ._internal_utils импортировать в_native_string
Файл "/usr/local/lib/python3.6/dist-packages/requests/_internal_utils.py", строка 11, в
из .compat import is_py2, builtin_str, str
Файл "/usr/local/lib/python3.6/dist-packages/requests/compat.py", строка 59, в
из http import cookiejar как cookielib
Файл "/usr/lib/python3.6/http/cookiejar.py", строка 31, в
импортная копия
Файл "/copy.py", строка 2, в
из github импортировать Github
ImportError: невозможно импортировать имя Github
На моем Mac:
импортировать github
Отслеживание (последний вызов последний):
Файл "", строка 1, в
Файл "/usr/local/lib/python3.7/site-packages/github/__init__.py", строка 44, в
из github.MainClass import Github, GithubIntegration
Файл "/usr/local/lib/python3.7/site-packages/github/MainClass.py", строка 58, в
запросы на импорт
Файл "/Users/amanda/Library/Python/3.7/lib/python/site-packages/requests/__init__.py", строка 112, в
из . импорт утилит
Файл "/Users/amanda/Library/Python/3.7/lib/python/site-packages/requests/utils.py", строка 26, в
from ._internal_utils импортировать в_native_string
Файл "/Users/amanda/Library/Python/3.7/lib/python/site-packages/requests/_internal_utils.py", строка 11, в
из .compat import is_py2, builtin_str, str
Файл "/Users/amanda/Library/Python/3.7/lib/python/site-packages/requests/compat.py", строка 59, в
из http import cookiejar как cookielib
Файл "/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/cookiejar.py", строка 31, в
импортная копия
Файл "/Users/amanda/copy.py", строка 2, в
из github импортировать Github
ImportError: невозможно импортировать имя Github из github (/usr/local/lib/python3.7/site-packages/github/__init__.py)
из github.MainClass import Github
Отслеживание (последний вызов последний):
Файл "", строка 1, в
Файл "/usr/local/lib/python3.7/site-packages/github/__init__.py", строка 44, в
из github.MainClass import Github, GithubIntegration
Файл "/usr/local/lib/python3.7/site-packages/github/MainClass.py", строка 58, в
запросы на импорт
Файл "/Users/amanda/Library/Python/3.7/lib/python/site-packages/requests/__init__.py", строка 112, в
из . импорт утилит
Файл "/Users/amanda/Library/Python/3.7/lib/python/site-packages/requests/utils.py", строка 26, в
from ._internal_utils импортировать в_native_string
Файл "/Users/amanda/Library/Python/3.7/lib/python/site-packages/requests/_internal_utils.py", строка 11, в
из .compat import is_py2, builtin_str, str
Файл "/Users/amanda/Library/Python/3.7/lib/python/site-packages/requests/compat.py", строка 59, в
из http import cookiejar как cookielib
Файл "/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/cookiejar.py", строка 31, в
импортная копия
Файл "/Users/amanda/copy.py", строка 2, в
из github импортировать Github
ImportError: невозможно импортировать имя Github из github (/usr/local/lib/python3.7/site-packages/github/__init__.py)
Я должен отметить, что сегодня утром я на своей рабочей машине делаю тест с MacBook, который
MacOS Mojave 10.14.6 с установленным python 3.7.5. Для контейнера ubuntu это та же самая версия python.
@stevenk
File "/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/cookiejar.py", line 31, in
import copy
File "/Users/amanda/copy.py", line 2, in
Откуда взялся этот файл /copy.py или /Users/amanada/copy.py? Он маскирует настоящий модуль Python /usr/lib/python3.6/copy.py и вызывает циклический импорт.
copy.py - это сценарий, над которым я работал, который использует PyGithub. Когда я запускал эти команды, они запускались из самого интерпретатора python после того, как я попытался запустить скрипт. Я создал новый контейнер без запуска этого сценария и просто запустил команды импорта через интерпретатор python и отлично работает:
импортировать github
из github импортировать Github
выход()
Я не уверен, почему добавление его в свой скрипт сломало все, он еще даже не полностью сформирован:
импортный шутил
из github импортировать Github
ACCESS_TOKEN = '123456789'
g = Github (ACCESS_TOKEN)
печать (g.get_user (). get_repos ())
@stevenk
Он сломал все из-за имени - он маскирует модуль Python с именем 'copy', который находится в цепочке импорта модуля, когда вы запускаете from github import Github
. Назовите свой сценарий как угодно, и он должен работать нормально.
Хорошо, спасибо за ясность @stevenk, я ценю ваше время!
@ p3nda Я рада помочь! Я собираюсь закрыть этот выпуск, если у вас возникнут другие проблемы, не стесняйтесь открывать новый выпуск.
Может ли кто-нибудь помочь мне с этой ошибкой
Отслеживание (последний вызов последний):
Файл "terra.py", строка 1, в
из импорта python_terraform *
ImportError: нет модуля с именем python_terraform
В моем случае я получил эту ошибку из-за проблем с моим путем импорта Python.
Я использую Python 3.7.3:
$ python3 --version
Python 3.7.3
И PyPI 20.2.3:
$ pip3 --version
pip 20.2.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
Я установил PyGithub:
$ pip3 install pygithub
Requirement already satisfied: pygithub in /usr/local/lib/python3.7/site-packages (1.43)
Requirement already satisfied: pyjwt in /usr/local/lib/python3.7/site-packages (from pygithub) (1.7.1)
Requirement already satisfied: requests>=2.14.0 in /usr/local/lib/python3.7/site-packages (from pygithub) (2.24.0)
Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/site-packages (from requests>=2.14.0->pygithub) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/site-packages (from requests>=2.14.0->pygithub) (1.25.7)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/site-packages (from requests>=2.14.0->pygithub) (2020.6.20)
Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/site-packages (from requests>=2.14.0->pygithub) (2.10)
Но, тем не менее, он не может импортировать:
$ python3 <<< "from github import Github"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'github'
В выводе pip мы увидели, что пакет был установлен в /usr/local/lib/python3.7/site-packages
. Однако этот каталог был __not__ в моем пути импорта Python:
$ python3 <<< 'import sys; print(sys.path)'
['', '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python37.zip', '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7', '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Users/jhwill/Library/Python/3.7/lib/python/site-packages', '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/site-packages']
PYTHONPATH
Один из способов решить эту проблему - добавить отсутствующий каталог в мой PYTHONPATH
в ~/.bashrc
:
# Add these lines
readonly local_site_packages="/usr/local/lib/python3.7/site-packages"
if [ ! -z "$PYTHONPATH" ]; then
export PYTHONPATH="$local_site_packages:$PYTHONPATH"
else
export PYTHONPATH="$local_site_packages"
fi
И загрузите файл:
$ . ~/.bashrc
/Users/jhwill/Library/Python/3.7/lib/python/site-packages
уже находится в моем системном пути. Итак, мы можем настроить таргетинг на этот каталог для установки с помощью команды pip3
:
$ pip install --target=/Users/jhwill/Library/Python/3.7/lib/python/site-packages PyGithub
Collecting PyGithub
Using cached PyGithub-1.53-py3-none-any.whl (274 kB)
Collecting pyjwt
Using cached PyJWT-1.7.1-py2.py3-none-any.whl (18 kB)
Collecting deprecated
Using cached Deprecated-1.2.10-py2.py3-none-any.whl (8.7 kB)
Collecting requests>=2.14.0
Using cached requests-2.24.0-py2.py3-none-any.whl (61 kB)
Processing ./Library/Caches/pip/wheels/62/76/4c/aa25851149f3f6d9785f6c869387ad82b3fd37582fa8147ac6/wrapt-1.12.1-cp37-cp37m-macosx_10_14_x86_64.whl
Collecting idna<3,>=2.5
Using cached idna-2.10-py2.py3-none-any.whl (58 kB)
Collecting chardet<4,>=3.0.2
Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting certifi>=2017.4.17
Using cached certifi-2020.6.20-py2.py3-none-any.whl (156 kB)
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
Downloading urllib3-1.25.10-py2.py3-none-any.whl (127 kB)
|████████████████████████████████| 127 kB 2.9 MB/s
Installing collected packages: pyjwt, wrapt, deprecated, idna, chardet, certifi, urllib3, requests, PyGithub
Successfully installed PyGithub-1.53 certifi-2020.6.20 chardet-3.0.4 deprecated-1.2.10 idna-2.10 pyjwt-1.7.1 requests-2.24.0 urllib3-1.25.10 wrapt-1.12.1
Самый полезный комментарий
Согласен, только что протестировал. При использовании Python 3.7+ появляется следующая ошибка:
Использование Python 3.6 отлично работает.