pip install은 TypeError: 예상 문자열 또는 바이트열류 객체를 제공합니다.

pip install은 TypeError: 예상 문자열 또는 바이트열류 객체를 제공합니다.

다른 사이트와 여기에서 이 오류를 보았지만 제공된 솔루션으로는 문제가 해결되지 않았습니다.운영 체제: 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.whlpip3version.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

관련 정보