<p>pip19.0.1 list error "AttributeError: _version"</p>

Criado em 24 jan. 2019  ·  32Comentários  ·  Fonte: pypa/pip

Meio Ambiente


Eu atualizo o pip de 10.1 para 19.0.1 e quero verificar meus pacotes Python, insiro "lista de pip" e dois erros ocorreram.
Descrição

Comportamento esperado

Exceção:
Traceback (última chamada mais recente):
Arquivo "/usr/local/var/pyenv/versions/3.7.0/lib/python3.7/site-packages/pip/_vendor/pkg_resources/__init__.py", linha 2584, na versão
return self._version
Arquivo "/usr/local/var/pyenv/versions/3.7.0/lib/python3.7/site-packages/pip/_vendor/pkg_resources/__init__.py", linha 2691, em __getattr__
aumentar AttributeError (attr)
AttributeError: _version

Durante o tratamento da exceção acima, outra exceção ocorreu:

Traceback (última chamada mais recente):
Arquivo "/usr/local/var/pyenv/versions/3.7.0/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", linha 176, no principal
status = self.run (opções, args)
Arquivo "/usr/local/var/pyenv/versions/3.7.0/lib/python3.7/site-packages/pip/_internal/commands/list.py", linha 148, em execução
self.output_package_listing (pacotes, opções)
Arquivo "/usr/local/var/pyenv/versions/3.7.0/lib/python3.7/site-packages/pip/_internal/commands/list.py", linha 205, em output_package_listing
data, header = format_for_columns (pacotes, opções)
Arquivo "/usr/local/var/pyenv/versions/3.7.0/lib/python3.7/site-packages/pip/_internal/commands/list.py", linha 271, em format_for_columns
row = [proj.project_name, proj.version]
Arquivo "/usr/local/var/pyenv/versions/3.7.0/lib/python3.7/site-packages/pip/_vendor/pkg_resources/__init__.py", linha 2589, na versão
aumentar ValueError (tmpl% self.PKG_INFO, self)
ValueError: ("Falta 'Versão:' cabeçalho e / ou arquivo METADATA", Desconhecido [versão desconhecida] (/usr/local/var/pyenv/versions/3.7.0/lib/python3.7/site-packages))
Como reproduzir

  1. Pegue o pacote de '...'
  2. Então corra '...'
  3. Ocorreu um erro.

Resultado

Paste the output of the steps above, including the commands themselves and
pip's output/traceback etc.
auto-locked bug

Comentários muito úteis

Estes não parecem certos ...
./pocketsphinx-0.1.3.dist-info/pocketsphinx-0.1.3.dist-info/METADATA
./-rpcio-1.18.0.dist-info/grpcio-1.18.0.dist-info/METADATA

@AnonGuy muito obrigado 🙌🏼
-rpcio com um traço estava causando o problema.

Todos 32 comentários

parece haver metadados completamente corrompidos em sua instalação do python - você pode tentar executar pip no pdb e obter o nome / local do projeto, talvez a pasta de metadados para ver o que está bagunçando as coisas?

@ zhouyu328 Qual é a saída do seguinte comando?

find /usr/local/var/pyenv/versions/3.7.0/lib/python3.7/site-packages/ -name METADATA

Estou tendo o mesmo problema, então experimentei um pouco e acho que isso pode ajudar:
eu editei:
~ / .local / lib / python3.6 / site-packages / pip / _vendor / pkg_resources / __ init__.py
e adicionou um pouco antes da linha 2589 uma impressão para que se pareça com isto
<strong i="9">@property</strong> def version(self): try: return self._version except AttributeError: version = _version_from_file(self._get_metadata(self.PKG_INFO)) if version is None: print(self._provider.__dict__) #this tmpl = "Missing 'Version:' header and/or %s file" raise ValueError(tmpl % self.PKG_INFO, self) return version
o self é um objeto preenchido com dados Nenhum e Desconhecido:
{'project_name': 'Unknown', 'py_version': None, 'platform': None, 'location': '~/.local/lib/python3.6/site-packages', 'precedence': -1, '_provider': <pip._vendor.pkg_resources.PathMetadata object at 0x7f0faa49d4e0>, '_key': 'unknown'} {'project_name': 'Unknown', 'py_version': None, 'platform': None, 'location': '~/.local/lib/python3.6/site-packages', 'precedence': -1, '_provider': <pip._vendor.pkg_resources.PathMetadata object at 0x7f0faa49d4e0>, '_key': 'unknown'}

mas o _provider retorna este:
{'module_path': '~/.local/lib/python3.6/site-packages', 'egg_info': '~/.local/lib/python3.6/site-packages/-rpcio-1.18.0.dist-info'} {'module_path': '~/.local/lib/python3.6/site-packages', 'egg_info': '~/.local/lib/python3.6/site-packages/-rpcio-1.18.0.dist-info'}

não faço ideia por que é impresso duas vezes em ambos os casos
eu verifiquei com
sudo apt install python3-grpcio
e eu tenho instalado

@ zhouyu328 Qual é a saída do seguinte comando?

find /usr/local/var/pyenv/versions/3.7.0/lib/python3.7/site-packages/ -name METADATA

em meus pacotes ~ / .local / lib / python3.6 / site, mas existem mais pastas han que e muitas têm o mesmo nome, mas sem o version.dist-info:

./pip-19.0.1.dist-info/METADATA
./lxml-4.3.0.dist-info/METADATA
./pickleshare-0.7.5.dist-info/METADATA
./asn1crypto-0.24.0.dist-info/METADATA
./keyrings.alt-3.1.1.dist-info/METADATA
./certifi-2018.10.15.dist-info/METADATA
./autopep8-1.4.3.dist-info/METADATA
./Pygments-2.3.1.dist-info/METADATA
./cligj-0.5.0.dist-info/METADATA
./jsonschema-2.6.0.dist-info/METADATA
./labelImg-1.8.1.dist-info/METADATA
./contextlib2-0.5.5.dist-info/METADATA
./pymacaroons-0.13.0.dist-info/METADATA
./six-1.10.0.dist-info/METADATA
./Glances-3.1.0.dist-info/METADATA
./cryptography-2.5.dist-info/METADATA
./mccabe-0.6.1.dist-info/METADATA
./jsoncomment-0.3.0.dist-info/METADATA
./ipykernel-5.1.0.dist-info/METADATA
./enum34-1.1.6.dist-info/METADATA
./docopt-0.6.2.dist-info/METADATA
./nbformat-4.4.0.dist-info/METADATA
./sympy-1.3.dist-info/METADATA
./cloudpickle-0.7.0.dist-info/METADATA
./pydocstyle-3.0.0.dist-info/METADATA
./wheel-0.32.3.dist-info/METADATA
./absl_py-0.7.0.dist-info/METADATA
./autokeras-0.3.6.dist-info/METADATA
./keyring-17.1.1.dist-info/METADATA
./grpcio_tools-1.10.1.dist-info/METADATA
./SecretStorage-3.1.1.dist-info/METADATA
./lws-1.2.dist-info/METADATA
./pyquery-1.4.0.dist-info/METADATA
./jeepney-0.4.dist-info/METADATA
./Keras_Preprocessing-1.0.2.dist-info/METADATA
./yarg-0.1.9.dist-info/METADATA
./blinker-1.4.dist-info/METADATA
./psutil-5.5.0.dist-info/METADATA
./libmagic-1.0.dist-info/METADATA
./h5py-2.9.0.dist-info/METADATA
./python_magic-0.4.15.dist-info/METADATA
./jupyter_console-6.0.0.dist-info/METADATA
./Click-7.0.dist-info/METADATA
./mistune-0.8.4.dist-info/METADATA
./pyflakes-2.0.0.dist-info/METADATA
./audioread-2.1.6.dist-info/METADATA
./inflect-2.1.0.dist-info/METADATA
./EbookLib-0.17.1.dist-info/METADATA
./networkx-2.2.dist-info/METADATA
./click_plugins-1.0.4.dist-info/METADATA
./grpcio-1.0.0.dist-info/METADATA
./unicode_slugify-0.1.3.dist-info/METADATA
./six-1.12.0.dist-info/METADATA
./scipy-1.2.0.dist-info/METADATA
./macaroonbakery-1.2.1.dist-info/METADATA
./tensorboard-1.12.0.dist-info/METADATA
./llvmlite-0.27.0.dist-info/METADATA
./qtconsole-4.4.3.dist-info/METADATA
./wcwidth-0.1.7.dist-info/METADATA
./requests-2.21.0.dist-info/METADATA
./ptyprocess-0.6.0.dist-info/METADATA
./pipreqs-0.4.9.dist-info/METADATA
./torchvision-0.2.1.dist-info/METADATA
./rope-0.11.0.dist-info/METADATA
./testpath-0.4.2.dist-info/METADATA
./pystache-0.5.4.dist-info/METADATA
./olefile-0.46.dist-info/METADATA
./Werkzeug-0.14.1.dist-info/METADATA
./defusedxml-0.5.0.dist-info/METADATA
./jupyter-1.0.0.dist-info/METADATA
./scikit_learn-0.20.2.dist-info/METADATA
./soupsieve-1.7.3.dist-info/METADATA
./pyRFC3339-1.1.dist-info/METADATA
./docker-3.7.0.dist-info/METADATA
./librosa-0.6.2.dist-info/METADATA
./cycler-0.10.0.dist-info/METADATA
./singledispatch-3.4.0.3.dist-info/METADATA
./python_language_server-0.22.0.dist-info/METADATA
./imageio-2.4.1.dist-info/METADATA
./influxdb-5.2.1.dist-info/METADATA
./pyflakes-2.1.0.dist-info/METADATA
./nbconvert-5.4.0.dist-info/METADATA
./backcall-0.1.0.dist-info/METADATA
./traitlets-4.3.2.dist-info/METADATA
./python_pptx-0.6.17.dist-info/METADATA
./bleach-3.1.0.dist-info/METADATA
./Keras-2.2.4.dist-info/METADATA
./cssselect-1.0.3.dist-info/METADATA
./joblib-0.13.1.dist-info/METADATA
./PyQt5_sip-4.19.13.dist-info/METADATA
./termcolor-1.1.0.dist-info/METADATA
./gast-0.2.2.dist-info/METADATA
./PyQt5-5.10.1.dist-info/METADATA
./argcomplete-1.9.4.dist-info/METADATA
./pluggy-0.8.1.dist-info/METADATA
./tensorboard-1.10.0.dist-info/METADATA
./urllib3-1.24.1.dist-info/METADATA
./Mako-1.0.7.dist-info/METADATA
./jupyter_core-4.4.0.dist-info/METADATA
./ipywidgets-7.4.2.dist-info/METADATA
./pyxdg-0.26.dist-info/METADATA
./simplejson-3.16.0.dist-info/METADATA
./Markdown-3.0.1.dist-info/METADATA
./tornado-5.1.1.dist-info/METADATA
./pandas-0.23.4.dist-info/METADATA
./louis-1.3.dist-info/METADATA
./pyinotify-0.9.6.dist-info/METADATA
./chardet-2.3.0.dist-info/METADATA
./netifaces-0.10.9.dist-info/METADATA
./yapf-0.25.0.dist-info/METADATA
./simplegeneric-0.8.1.dist-info/METADATA
./python_debian-0.1.34.dist-info/METADATA
./chardet-3.0.4.dist-info/METADATA
./httplib2-0.12.0.dist-info/METADATA
./python_jsonrpc_server-0.0.2.dist-info/METADATA
./widgetsnbextension-3.4.2.dist-info/METADATA
./prometheus_client-0.5.0.dist-info/METADATA
./sip-4.19.8.dist-info/METADATA
./mock-2.0.0.dist-info/METADATA
./pytesseract-0.2.5.dist-info/METADATA
./requests_file-1.4.3.dist-info/METADATA
./Keras_Preprocessing-1.0.5.dist-info/METADATA
./ipython-7.2.0.dist-info/METADATA
./lazr.uri-1.0.3.dist-info/METADATA
./requests_unixsocket-0.1.5.dist-info/METADATA
./notebook-5.7.4.dist-info/METADATA
./pytesseract-0.2.6.dist-info/METADATA
./Flask-1.0.2.dist-info/METADATA
./pycocotools-2.0.0.dist-info/METADATA
./pocketsphinx-0.1.15.dist-info/METADATA
./distro-1.3.0.dist-info/METADATA
./isort-4.3.4.dist-info/METADATA
./pysnmp-4.4.8.dist-info/METADATA
./pyparsing-2.3.1.dist-info/METADATA
./pycups-1.9.74.dist-info/METADATA
./PyJWT-1.7.1.dist-info/METADATA
./resampy-0.2.1.dist-info/METADATA
./xlrd-1.2.0.dist-info/METADATA
./snowballstemmer-1.2.1.dist-info/METADATA
./autopep8-1.4.2.dist-info/METADATA
./pycairo-1.18.0.dist-info/METADATA
./lazr.restfulclient-0.14.2.dist-info/METADATA
./tldextract-2.2.0.dist-info/METADATA
./snuggs-1.4.2.dist-info/METADATA
./launchpadlib-1.10.6.dist-info/METADATA
./jedi-0.13.2.dist-info/METADATA
./scour-0.37.dist-info/METADATA
./futures-3.1.1.dist-info/METADATA
./sshuttle-0.78.4.dist-info/METADATA
./Cython-0.29.3.dist-info/METADATA
./websocket_client-0.54.0.dist-info/METADATA
./SpeechRecognition-3.8.1.dist-info/METADATA
./GPUtil-1.4.0.dist-info/METADATA
./python_pptx-0.6.5.dist-info/METADATA
./configparser-3.5.0.dist-info/METADATA
./ply-3.11.dist-info/METADATA
./PyOpenGL-3.1.0.dist-info/METADATA
./pyzmq-17.1.2.dist-info/METADATA
./decorator-4.3.2.dist-info/METADATA
./pytz-2018.9.dist-info/METADATA
./binwalk-2.1.0.dist-info/METADATA
./PyYAML-3.13.dist-info/METADATA
./terminado-0.8.1.dist-info/METADATA
./python_jsonrpc_server-0.1.2.dist-info/METADATA
./torch-1.0.0.dist-info/METADATA
./pyqtgraph-0.10.0.dist-info/METADATA
./tensorflow-1.12.0.dist-info/METADATA
./prompt_toolkit-2.0.7.dist-info/METADATA
./cffi-1.11.5.dist-info/METADATA
./numpy-1.16.0.dist-info/METADATA
./youtube_dl-2019.1.24.dist-info/METADATA
./selenium-3.141.0.dist-info/METADATA
./wheel-0.32.2.dist-info/METADATA
./XlsxWriter-1.1.2.dist-info/METADATA
./pyparsing-2.3.0.dist-info/METADATA
./tensorflow-1.10.0.dist-info/METADATA
./Unidecode-1.0.23.dist-info/METADATA
./Jinja2-2.10.dist-info/METADATA
./bleach/_vendor/html5lib-1.0.1.dist-info/METADATA
./pbr-5.1.1.dist-info/METADATA
./textract-1.6.1.dist-info/METADATA
./docx2txt-0.7.dist-info/METADATA
./pysmi-0.3.3.dist-info/METADATA
./pocketsphinx-0.1.3.dist-info/pocketsphinx-0.1.3.dist-info/METADATA
./PyWavelets-1.0.1.dist-info/METADATA
./jupyter_client-5.2.4.dist-info/METADATA
./tqdm-4.29.1.dist-info/METADATA
./webencodings-0.5.1.dist-info/METADATA
./setuptools-40.6.3.dist-info/METADATA
./selenium_requests-1.3.dist-info/METADATA
./lightgbm-2.2.2.dist-info/METADATA
./oauthlib-3.0.1.dist-info/METADATA
./numba-0.42.0.dist-info/METADATA
./PyNaCl-1.3.0.dist-info/METADATA
./Keras_Applications-1.0.4.dist-info/METADATA
./defer-1.0.4.dist-info/METADATA
./xlrd-1.0.0.dist-info/METADATA
./ipython_genutils-0.2.0.dist-info/METADATA
./rasterio-1.0.10.dist-info/METADATA
./dask-1.1.0.dist-info/METADATA
./reportlab-3.5.13.dist-info/METADATA
./distro_info-0.0.0.dist-info/METADATA
./setuptools-39.1.0.dist-info/METADATA
./-rpcio-1.18.0.dist-info/grpcio-1.18.0.dist-info/METADATA
./rasterio-1.0.13.dist-info/METADATA
./MarkupSafe-1.1.0.dist-info/METADATA
./protobuf-3.6.1.dist-info/METADATA
./wadllib-1.3.3.dist-info/METADATA
./affine-2.2.2.dist-info/METADATA
./testresources-2.0.1.dist-info/METADATA
./future-0.17.1.dist-info/METADATA
./pyxattr-0.6.1.dist-info/METADATA
./docker_pycreds-0.4.0.dist-info/METADATA
./certifi-2018.11.29.dist-info/METADATA
./matplotlib-3.0.2.dist-info/METADATA
./beautifulsoup4-4.5.3.dist-info/METADATA
./mpmath-1.1.0.dist-info/METADATA
./Send2Trash-1.5.0.dist-info/METADATA
./itsdangerous-1.1.0.dist-info/METADATA
./Keras_Applications-1.0.6.dist-info/METADATA
./SpeechRecognition-3.6.3.dist-info/METADATA
./html5lib-1.0.1.dist-info/METADATA
./idna-2.8.dist-info/METADATA
./toolz-0.9.0.dist-info/METADATA
./pycparser-2.19.dist-info/METADATA
./kiwisolver-1.0.1.dist-info/METADATA
./entrypoints-0.3.dist-info/METADATA
./tensorboard-1.12.2.dist-info/METADATA
./pycodestyle-2.4.0.dist-info/METADATA
./astor-0.7.1.dist-info/METADATA
./pycryptodomex-3.7.3.dist-info/METADATA
./python_language_server-0.21.2.dist-info/METADATA
./PyGObject-3.30.4.dist-info/METADATA
./scikit_image-0.14.2.dist-info/METADATA
./pycrypto-2.6.1.dist-info/METADATA
./opencv_python-4.0.0.21.dist-info/METADATA
./bottle-0.12.16.dist-info/METADATA
./attrs-18.2.0.dist-info/METADATA
./pandocfilters-1.4.2.dist-info/METADATA
./pexpect-4.6.0.dist-info/METADATA
./pyasn1-0.4.5.dist-info/METADATA
./parso-0.3.2.dist-info/METADATA
./numpy-1.14.5.dist-info/METADATA
./nltk-3.4.dist-info/METADATA
./Pillow-5.4.1.dist-info/METADATA
./beautifulsoup4-4.7.1.dist-info/METADATA
./python_dateutil-2.7.5.dist-info/METADATA

Estes não parecem certos ...

./pocketsphinx-0.1.3.dist-info/pocketsphinx-0.1.3.dist-info/METADATA
./-rpcio-1.18.0.dist-info/grpcio-1.18.0.dist-info/METADATA

@ 0000matteo0000 Isso corrige o seu problema?

mv pocketsphinx-0.1.3.dist-info p; mv p/pocketsphinx-0.1.3.dist-info .; rm -r p
mv -rpcio-1.18.0.dist-info r; mv r/grpcio-1.18.0.dist-info .; rm -r r

@ 0000matteo0000 Isso corrige o seu problema?

mv pocketsphinx-0.1.3.dist-info p; mv p/pocketsphinx-0.1.3.dist-info .; rm -r p
mv -rpcio-1.18.0.dist-info r; mv r/grpcio-1.18.0.dist-info .; rm -r r

Sim, obrigado, movi aqueles e também tive que mover o próprio pip, mas parece que isso corrigiu, poderia haver um bug no pip para que os pacotes sejam colocados nas pastas erradas? porque eu nunca mudei nada por aí

@uranusjr Você sabe por que os pacotes podem estar sendo instalados com um hífen inicial? Veja o comentário acima ( -rpcio vez de grpcio ). Aqui está outro exemplo ( -onfigparser ): https://github.com/pypa/pip/issues/6169#issuecomment -457537807

Hmm, não, nada do topo da minha cabeça. Eu também tentei, mas não consegui reproduzir isso em vários ambientes (Python 2.7 / 3.7, Mac / Windows, pip 19.0.0 / 19.0.1, venv / global). Este parece ser um problema muito específico: |

pode estar relacionado, eu uso este script para atualizar todos os pacotes pip

! / bin / bash

pip install --user --upgrade --force-reinstalar --ignore-instalado pip

pip install --user --upgrade pip
p = $ (lista de pip | awk 'NR> 2, ORS = "" {imprimir $ 1;}')

pip install --user --upgrade --force-reinstalar --ignore-installed $ p

pip install --user --upgrade $ p

mas se ele alterasse os nomes dos pacotes, o pip iria parar de dizer pacote não encontrado
e usei os comandos forçar reinstalar e ignorar instalados em vários pacotes tentando consertar a "falha ao importar o principal do pacote pip" quando tento executá-lo como sudo.
não há problema em executar o pip a partir do usuário root

Também estou recebendo alguns erros ao usar o pip freeze. Estou usando o windows 10, python 3.6.0 e a versão do pip é 19.0.1. Por favor dê uma olhada:

`Error checking for conflicts.
Traceback (most recent call last):
  File "c:\users\rohit\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2584, in version
    return self._version
  File "c:\users\rohit\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2691, in __getattr__
    raise AttributeError(attr)
AttributeError: _version

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\rohit\appdata\local\programs\python\python36\lib\site-packages\pip\_internal\commands\install.py", line 503, in _warn_about_conflicts
    package_set, _dep_info = check_install_conflicts(to_install)
  File "c:\users\rohit\appdata\local\programs\python\python36\lib\site-packages\pip\_internal\operations\check.py", line 108, in check_install_conflicts
    package_set, _ = create_package_set_from_installed()
  File "c:\users\rohit\appdata\local\programs\python\python36\lib\site-packages\pip\_internal\operations\check.py", line 47, in create_package_set_from_installed
    package_set[name] = PackageDetails(dist.version, dist.requires())
  File "c:\users\rohit\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2589, in version
    raise ValueError(tmpl % self.PKG_INFO, self)
ValueError: ("Missing 'Version:' header and/or METADATA file", Unknown [unknown version] (c:\users\rohit\appdata\local\programs\python\python36\lib\site-packages))`

Qualquer ajuda será apreciada.

Alguns comentários:

  • @zooba Isso está relacionado ao # 6169 que você está consertando? Consulte https://github.com/pypa/pip/issues/6194#issuecomment -457716967 [link corrigido] para ver os caminhos que esse problema está causando. Observe em particular o "-" inicial em ( -rpcio-1.18.0.dist-info ).

  • pkg_resources provavelmente deve incluir a localização do METADATA incorreto (por exemplo, caminho para o arquivo) na mensagem ValueError para facilitar a solução de problemas. Talvez alguém possa registrar um problema lá.

Acho que os diretórios .dist-info aninhados são o último problema em que estou trabalhando em meu PR.

pkg_resources permite hífen inicial em nomes de pacotes? Isso é facilmente corrigido removendo-o da lista de caracteres "válido / inválido".

O pkg_resources permite o hífen inicial nos nomes dos pacotes?

Eu estava supondo que o problema pode estar no lado do pip (por exemplo, o pip decidir quando chamar pkg_resources ). (Eu também pretendia mencionar esse ponto em meu comentário anterior.) Ou talvez pudesse ser os dois talvez. De qualquer forma, é outra coisa a considerar como um acompanhamento para esse problema.

Eu também estou recebendo o erro inicial mencionado por @ zhouyu328. Na inspeção, os seguintes pacotes meus têm um hífen principal introduzido:

-_pycache__
-ecorator-4.3.0.dist-info
-ix-1.11.0.dist-info
-plotly_utils
-uartz
-ynput-1.3.10.dist-info
-ytz-2018.5.dist-info

Eu também uso um script para atualizar todos os pacotes:
sudo -H /Users/sterlingbutters/anaconda3/bin/pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 /Users/sterlingbutters/anaconda3/bin/pip install -U

Gostaria de receber informações sobre como consertar a configuração agora quebrada (estou com medo principalmente de bagunçar o __pycache__ dir)

o pior são os terminais e o próprio pip falhará com pacotes que começam com um hífen porque eles o tratam como um parâmetro.
alguns dos parâmetros fornecidos com hífen duplo poderiam ser mal interpretados de forma que um deles acabasse no nome do pacote?
também alguns pacotes foram movidos para dentro de seu próprio diretório por algum motivo
e para mim isso aconteceu logo após a atualização para o pip 19 de 18, se houver scripts gerenciando a atualização do ambiente do pip de um para o outro, talvez o problema possa estar aí

o pior são os terminais e o próprio pip falhará com pacotes que começam com um hífen porque eles o tratam como um parâmetro.

Esse é um ponto _muito_ bom que eu não tinha pensado. Vou retirar o hífen como um caractere de substituição potencial.

Eu tenho o mesmo problema no meu mac. O pip original foi instalado junto com o python3 por meio de brew install python3 e funciona bem. Depois de tentar atualizar o pip por pip3 install -U pip , os comandos pip (lista de pip) começam a gerar essas exceções.
A discussão acima me dá uma dica para verificar se o projeto quebrado existe na minha pasta de pacotes do site ou não.

  • Como pip --version mostra pip 19.0.1 from /usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pip (python 3.6) , fui até a pasta e tentei encontrar algumas pastas começando com '-' sem sucesso.
  • É frustrante que a mensagem de erro não seja suficiente para localizar o problema exato, então decidi depurá-lo para obter detalhes, .., vamos lá:
#pip/_vendor/pkg_resources/__init__.py
    <strong i="14">@property</strong>
    def version(self):
        try:
            print('-'*50)
            print(self.project_name)
            print(self.location)
            print(self._version)
            # print(self.project_name, self._version, self.location)
            return self._version
        except AttributeError:
            version = _version_from_file(self._get_metadata(self.PKG_INFO))
            if version is None:
                print('Something wrong exists in:', self.project_name)
                tmpl = "Missing 'Version:' header and/or %s file"
                raise ValueError(tmpl % self.PKG_INFO, self)
            return version

então pip list saídas:

. . .
--------------------------------------------------
Unknown
/Users/king/Library/Python/3.6/lib/python/site-packages
Something wrong exists in Unknown

Eu percebi que pacotes quebrados podem existir em /Users/king/Library/Python/3.6/lib/python/site-packages e existem de fato. Depois de remover os pacotes quebrados desta pasta, pip volta à vida!

É frustrante que a mensagem de erro não seja suficiente para localizar o problema exato,

Sim, é por isso que eu disse acima que uma questão provavelmente deveria ser registrada com pkg_resources .

Talvez alguém possa registrar um problema lá.

Fiz isso: https://github.com/pypa/setuptools/issues/1664

Eu tive o mesmo problema, e executei o comando mv /usr/lib/python2.7/site-packages/-br-1.10.0.dist-info /usr/lib/python2.7/site-packages/pbr-1.10.0.dist-info para resolver o problema.

No entanto, qual é o verdadeiro motivo do problema?

No entanto, qual é o verdadeiro motivo do problema?

A causa raiz será resolvida por PR # 6225.

Estes não parecem certos ...
./pocketsphinx-0.1.3.dist-info/pocketsphinx-0.1.3.dist-info/METADATA
./-rpcio-1.18.0.dist-info/grpcio-1.18.0.dist-info/METADATA

@AnonGuy muito obrigado 🙌🏼
-rpcio com um traço estava causando o problema.

O mesmo para mim, um pacote com um traço era o culpado.

Então, quando isso será consertado? Ou qual é a solução alternativa?

A causa de muitos deles foi corrigida na versão 19.0.2, e é por isso que esse problema foi resolvido. No entanto, as pessoas ainda podem estar tendo esse problema por causa de diretórios que foram corrompidos antes (ou foram corrompidos por um motivo completamente diferente). Inscreva-se na edição # 6283 para um tratamento mais eficiente desses diretórios e para sugestões sobre como remover um diretório corrompido que você possa ter.

Corrigido removendo uma pasta chamada -umpy-1.15.4.dist-info de site-packages .

Oi pessoal,
Gostaria apenas de salientar que também resolvi este problema depois de remover uma pasta chamada -andas-0.23.0.dist-info dos sites-packages

Parece que algo deu errado durante a instalação / atualização do pacote pandas e esta pasta -andas-0.23.0.dist-info é uma sobra de uma solução de problemas do pip _auto_.

Obrigado a todos pela contribuição 👍

@cjerdonek Para

Para identificar pacotes ofensivos, executei o seguinte dentro do diretório site-packages:

import os
import re
for roots, dirs, files in os.walk("."):
    if re.match(".*dist-info", roots):
        if "METADATA" not in files:
            print(roots)

Em seguida, removeu os diretórios ofensivos e reinstalou seus pacotes.

Para sua informação, o setuptools acaba de lançar um lançamento (40.9.0) em que a mensagem de exceção ValueError agora inclui o caminho para o diretório específico que está causando o problema: https://github.com/pypa/setuptools/pull/1706#issuecomment -479621881

Percebi que podem existir pacotes quebrados em /Users/king/Library/Python/3.6/lib/python/site-packages e existe de fato. Depois de remover os pacotes quebrados desta pasta, pip volta à vida!

1. Eu removo todos os arquivos aqui,

$ pwd
/home/wangjl/.local/lib/python3.7/site-packages
$ rm -Rf ./*

2. e reinstale o pip novamente,
$ cd ~ / software /
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python ./get-pip.py --user

3. então está tudo bem.
$ pip -V
pip 19.1.1 de /home/wangjl/.local/lib/python3.7/site-packages/pip (python 3.7)

$ pip lista | cabeça
Versão do pacote


alabastro 0.7.11
cliente anaconda 1.7.2
anaconda-navigator 1.9.2

Esta página foi útil?
0 / 5 - 0 avaliações