![pip install은 TypeError: 예상 문자열 또는 바이트열류 객체를 제공합니다.](https://linux55.com/image/208173/pip%20install%EC%9D%80%20TypeError%3A%20%EC%98%88%EC%83%81%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%EB%98%90%EB%8A%94%20%EB%B0%94%EC%9D%B4%ED%8A%B8%EC%97%B4%EB%A5%98%20%EA%B0%9D%EC%B2%B4%EB%A5%BC%20%EC%A0%9C%EA%B3%B5%ED%95%A9%EB%8B%88%EB%8B%A4..png)
다른 사이트와 여기에서 이 오류를 보았지만 제공된 솔루션으로는 문제가 해결되지 않았습니다.운영 체제: Mendel GNU/Linux 5(Eagle)(데비안). 설치하려고 하면 psutil
다음 오류가 발생합니다.
sudo pip3 install --upgrade psutil
Collecting psutil
Exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 143, in main
status = self.run(options, args)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 338, in run
resolver.resolve(requirement_set)
File "/usr/lib/python3/dist-packages/pip/_internal/resolve.py", line 102, in resolve
self._resolve_one(requirement_set, req)
File "/usr/lib/python3/dist-packages/pip/_internal/resolve.py", line 256, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/usr/lib/python3/dist-packages/pip/_internal/resolve.py", line 209, in _get_abstract_dist_for
self.require_hashes
File "/usr/lib/python3/dist-packages/pip/_internal/operations/prepare.py", line 218, in prepare_linked_requirement
req.populate_link(finder, upgrade_allowed, require_hashes)
File "/usr/lib/python3/dist-packages/pip/_internal/req/req_install.py", line 164, in populate_link
self.link = finder.find_requirement(self, upgrade)
File "/usr/lib/python3/dist-packages/pip/_internal/index.py", line 572, in find_requirement
all_candidates = self.find_all_candidates(req.name)
File "/usr/lib/python3/dist-packages/pip/_internal/index.py", line 534, in find_all_candidates
self._package_versions(page.iter_links(), search)
File "/usr/lib/python3/dist-packages/pip/_internal/index.py", line 702, in _package_versions
v = self._link_package_versions(link, search)
File "/usr/lib/python3/dist-packages/pip/_internal/index.py", line 777, in _link_package_versions
support_this_python = check_requires_python(link.requires_python)
File "/usr/lib/python3/dist-packages/pip/_internal/utils/packaging.py", line 33, in check_requires_python
return python_version in requires_python_specifier
File "/usr/share/python-wheels/packaging-19.0-py2.py3-none-any.whl/packaging/specifiers.py", line 676, in __contains__
return self.contains(item)
File "/usr/share/python-wheels/packaging-19.0-py2.py3-none-any.whl/packaging/specifiers.py", line 681, in contains
item = parse(item)
File "/usr/share/python-wheels/packaging-19.0-py2.py3-none-any.whl/packaging/version.py", line 28, in parse
return Version(version)
File "/usr/share/python-wheels/packaging-19.0-py2.py3-none-any.whl/packaging/version.py", line 219, in __init__
match = self._regex.search(version)
TypeError: expected string or bytes-like object
파일을 찾을 수 없었습니다 /usr/share/python-wheels/packaging-19.0-py2.py3-none-any.whl/packaging/version.py
(파일 뒤에 아무것도 없었기 때문에 휠 종속성인 .whl
것으로 추측했습니다 . 그래서 시스템에서 검색했습니다.packaging-19.0-py2.py3-none-any.whl
pip3
version.py
$ sudo find / -name version.py
/usr/lib/python3/dist-packages/debianbts/version.py
/usr/lib/python3/dist-packages/pkg_resources/_vendor/packaging/version.py
/usr/lib/python3/dist-packages/chardet/version.py
/usr/lib/python3/dist-packages/numpy/version.py
/usr/lib/python3/dist-packages/numpy/ma/version.py
/usr/lib/python3/dist-packages/OpenGL/version.py
/usr/lib/python3/dist-packages/setuptools/version.py
/usr/lib/python3/dist-packages/setuptools/_vendor/packaging/version.py
/usr/lib/python2.7/distutils/version.py
/usr/lib/python2.7/dist-packages/pkg_resources/_vendor/packaging/version.py
/usr/lib/python2.7/dist-packages/IPython/utils/version.py
/usr/lib/python3.7/distutils/version.py
/usr/local/lib/python3.7/dist-packages/pydantic/version.py
/usr/local/lib/python3.7/dist-packages/websockets/version.py
/usr/local/lib/python3.7/dist-packages/flask_cors/version.py
/usr/local/lib/python3.7/dist-packages/packaging/version.py
/usr/share/python3/debpython/version.py
/usr/share/dh-python/dhpython/version.py
/usr/share/python/debpython/version.py
다음과 같은 두 개의 파일을 편집했습니다 packaging/version.py
.
/usr/local/lib/python3.7/dist-packages/packaging/version.py
이는 pip3 설치 출력에 영향을 미치지 않으며 변경 사항은 다음과 같습니다
match = self._regex.search(version)
.match = self._regex.search(str(version))
그런 다음 다른 파일을 변경합니다./packaging/version.py
/usr/lib/python3/dist-packages/pkg_resources/_vendor/packaging/version.py
/usr/lib/python3/dist-packages/setuptools/_vendor/packaging/version.py
그러나 아무것도 변하지 않았습니다. 난 이게 문제가 될 수 있다는 걸 알았어데비안의 바퀴(오류는 정확히 동일하지는 않지만 휠을 다운그레이드해도 괜찮은 것 같나요?) 그러나 이것이 내 시스템에 얼마나 많은 영향을 미칠지는 잘 모르겠습니다(이전에 패키지 관리자 문제가 있었고 패키지 관리자 문제를 겪어야 했습니다). 내 Linux 배포 버전을 삭제하므로 주의해야 합니다).
편집: pip3 버전:
$ pip3 --version
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
편집: 이 문제는 설치하려고 할 때 발생했습니다.PyAccessPoint. 무슨 이유에서인지 설치를 해보니힘든 길, 작동하지만 여전히 문제가 해결되지 않으며 향후 휠 문제도 해결되지 않습니다.
sudo apt update && sudo apt --yes --force-yes install dnsmasq hostapd python3-dev unzip python3-pip && cd ~ && wget --output-document=pyaccesspoint-master.zip https://github.com/Goblenus/pyaccesspoint/archive/master.zip && unzip pyaccesspoint-master.zip && cd pyaccesspoint-master && sudo python3 setup.py install && cd ~ && sudo rm -rf pyaccesspoint-master.zip pyaccesspoint-master