我无法从 PyPI 安装软件包
github
。
所以问题是我想用
from github import Github
但是我尝试之后
pip install github
我收到错误:
Building wheels for collected packages: aiohttp
Building wheel for aiohttp (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for aiohttp (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [100 lines of output]
*********************
* Accelerated build *
*********************
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-311
creating build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\abc.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\base_protocol.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\client.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\client_exceptions.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\client_proto.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\client_reqrep.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\client_ws.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\connector.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\cookiejar.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\formdata.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\hdrs.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\helpers.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\http.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\http_exceptions.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\http_parser.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\http_websocket.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\http_writer.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\locks.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\log.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\multipart.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\payload.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\payload_streamer.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\pytest_plugin.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\resolver.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\streams.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\tcp_helpers.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\test_utils.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\tracing.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\typedefs.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_app.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_exceptions.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_fileresponse.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_log.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_middlewares.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_protocol.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_request.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_response.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_routedef.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_runner.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_server.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_urldispatcher.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\web_ws.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\worker.py -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\__init__.py -> build\lib.win-amd64-cpython-311\aiohttp
running egg_info
writing aiohttp.egg-info\PKG-INFO
writing dependency_links to aiohttp.egg-info\dependency_links.txt
writing requirements to aiohttp.egg-info\requires.txt
writing top-level names to aiohttp.egg-info\top_level.txt
reading manifest file 'aiohttp.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'aiohttp' anywhere in distribution
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files matching '*.pyd' found anywhere in distribution
warning: no previously-included files matching '*.so' found anywhere in distribution
warning: no previously-included files matching '*.lib' found anywhere in distribution
warning: no previously-included files matching '*.dll' found anywhere in distribution
warning: no previously-included files matching '*.a' found anywhere in distribution
warning: no previously-included files matching '*.obj' found anywhere in distribution
warning: no previously-included files found matching 'aiohttp\*.html'
no previously-included directories found matching 'docs\_build'
adding license file 'LICENSE.txt'
writing manifest file 'aiohttp.egg-info\SOURCES.txt'
copying aiohttp\_cparser.pxd -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_find_header.c -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_find_header.h -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_find_header.pxd -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_headers.pxi -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_helpers.c -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_helpers.pyi -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_helpers.pyx -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_http_parser.c -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_http_parser.pyx -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_http_writer.c -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_http_writer.pyx -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_websocket.c -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\_websocket.pyx -> build\lib.win-amd64-cpython-311\aiohttp
copying aiohttp\py.typed -> build\lib.win-amd64-cpython-311\aiohttp
creating build\lib.win-amd64-cpython-311\aiohttp\.hash
copying aiohttp\.hash\_cparser.pxd.hash -> build\lib.win-amd64-cpython-311\aiohttp\.hash
copying aiohttp\.hash\_find_header.pxd.hash -> build\lib.win-amd64-cpython-311\aiohttp\.hash
copying aiohttp\.hash\_helpers.pyi.hash -> build\lib.win-amd64-cpython-311\aiohttp\.hash
copying aiohttp\.hash\_helpers.pyx.hash -> build\lib.win-amd64-cpython-311\aiohttp\.hash
copying aiohttp\.hash\_http_parser.pyx.hash -> build\lib.win-amd64-cpython-311\aiohttp\.hash
copying aiohttp\.hash\_http_writer.pyx.hash -> build\lib.win-amd64-cpython-311\aiohttp\.hash
copying aiohttp\.hash\_websocket.pyx.hash -> build\lib.win-amd64-cpython-311\aiohttp\.hash
copying aiohttp\.hash\hdrs.py.hash -> build\lib.win-amd64-cpython-311\aiohttp\.hash
running build_ext
building 'aiohttp._websocket' extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for aiohttp
Failed to build aiohttp
ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects
我尝试从
python=3.12
降级为 python=3.11
。
由于 github
需要 aiohttp=3.8.2
我也这样做了。
但我仍然遇到同样的错误。
我想使用 Github,并想使用 GitHub 访问令牌一次克隆多个存储库。
我预计降级可以解决问题。
PyPI 上
github
的发布将其 aiohttp 要求固定为版本 3.8.1(不是您注意到的 3.8.2),但 GitHub 上的主分支已将此要求放宽到 aiohttp>=3.8.1
。因此,请尝试从 GitHub 直接安装,以避免严格的 aiohttp 要求:
python -m pip install git+https://github.com/VarMonke/GitHub-API-Wrapper.git
这样,您就可以使用更新的、更重要的是预构建版本的 aiohttp 安装
github
,从而避免安装 C++ 构建工具并自行构建。
问题背后的可能原因是 aiohttp 版本 3.8.1 和 3.8.2 没有针对 Python 3.11 和 3.12 的预构建版本。通过上述安装,您将获得更新版本的 aiohttp,它确实有这样的构建。
您是否尝试在 https://visualstudio.microsoft.com/visual-cpp-build-tools/ 下载 C++ 构建工具?
看起来这样就可以解决问题了。