Ambiente
CircleCI usando Conda, por exemplo https://circleci.com/gh/peterjc/thapbi-pict/1073
pip install --upgrade pip setuptools
)Fiz apenas pequenas alterações no meu código, mas hoje as compilações do CircleCI quebraram durante o estágio de compilação/instalação da minha ferramenta Python - vários ramos afetados. O tempo se encaixa no lançamento do pip 19.3 no PyPI.
Descrição
Parece que um lançamento recente do pip moveu alguns arquivos internos, meu palpite é # 6830.
Comportamento esperado
Como reproduzir
Saída completa em https://circleci.com/gh/peterjc/thapbi-pict/1073 que está rodando https://github.com/peterjc/thapbi-pict/blob/9fcec2da60e6e6ae5cf7ee6ad4b53dcc3a40cfe7/.circleci/config.yml#L56
...
python setup.py sdist --formats=gztar
python setup.py bdist_wheel
pip install dist/thapbi_pict-*.whl
Saída
Traceback (most recent call last):
File "/opt/conda/bin/pip", line 7, in <module>
from pip._internal import main
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/__init__.py", line 40, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", line 11, in <module>
from pip._internal.commands import (
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 9, in <module>
from pip._internal.commands.download import DownloadCommand
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/commands/download.py", line 10, in <module>
from pip._internal.operations.prepare import RequirementPreparer
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 9, in <module>
from pip._internal.distributions import (
File "/opt/conda/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/opt/conda/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
Exited with code 1
Seria realmente útil saber o que na configuração do CircleCI (ou conda?) está usando essas APIs internas - a reorganização não deve ter afetado nenhum código externo. O principal problema que conhecemos até agora é a reorganização do main, que afeta os scripts wrapper, mas este parece um pouco diferente. Qualquer insight que você pode dar seria muito útil, obrigado.
Confirmado que a remoção de pip install --upgrade pip setuptools
corrigiu as coisas,
https://github.com/peterjc/thapbi-pict/commit/4060404c1034a676439aef1369260022577a6627
https://circleci.com/gh/peterjc/thapbi-pict/1074
ou seja, algo quebrou em como eu atualizei do pip 19.2.3 para 19.3
Não estou usando intencionalmente o Python fornecido pelo CircleCI, mas o Python fornecido pelo Conda - há valor em mudar de pip ...
para python -m pip ...
apenas para remover a possibilidade de isso ser devido à mistura de Pythons?
Trabalhando em uma ramificação agora, adicionei um pouco mais de log e voltei para a versão quebrada:
https://circleci.com/gh/peterjc/thapbi-pict/1076
Isso confirma que o traceback é acionado por pip install dist/thapbi_pict-*.whl
(curinga para corresponder à única roda recém-construída).
OK, usar python -m pip ...
vez de pip ...
não ajuda:
https://circleci.com/gh/peterjc/thapbi-pict/1077
https://github.com/peterjc/thapbi-pict/commit/c168fbb7b61b2670bfb73dfb7ea87605fd17bfaf
Se vale a pena, acabei de confirmar que from pip._internal import main
funciona em uma simples atualização do pip (no Windows, então não é uma boa comparação, mas enfim...). Portanto, suspeito que haja algo incompatível em seu ambiente, embora não consiga ver pelo rastreamento o que é.
CircleCI tem a capacidade de executar novamente um trabalho com acesso SSH à VM (não que eu já tenha usado), então, em teoria, isso poderia ser usado para depuração, mas eu realmente não sei por onde começar.
Eu tenho uma solução por enquanto e, em algum momento, o conda-forge também terá o pip 19.3 empacotado, portanto, a menos que outras pessoas vejam a mesma exceção, parece uma prioridade baixa?
OK legal. Se você tiver uma solução alternativa, não há problema em deixá-la lá por enquanto. Se outros adicionarem comentários informando que está acontecendo em outro lugar, podemos fazer mais pesquisas - talvez eles tenham informações extras que ajudem.
Estou enfrentando um problema semelhante no macOS, python: 3.6.9. O comando pip no meu terminal não funciona mais. Alguma sugestão?
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
Isso ajudou por enquanto
Eu tenho o mesmo problema no CircleCI desde 1 hora atrás.
A alteração da versão da imagem do docker de python:3.7 para python:3.7.4 corrige esse problema. (apenas solução alternativa). como isso:
version: 2
...
jobs:
build:
docker:
- image: python:3.7.4
...
Algum de vocês está usando cache? Eu acho que é possível que alguns internos do pip tenham mudado e quando você restaura o cache da versão antiga do python pip quebra. Sugiro que você invalide os caches do CI do círculo alterando o keys
e veja o que acontece ... (funcionou para mim!)
Como sugerido por @bgkelly, limpar o cache também funcionou para mim!
Sim - o mesmo para mim - alterar a chave de cache resolveu isso para os projetos de nossa equipe no circleci. Obrigado @bgkelly
Alterar a chave de cache não resolveu para mim.
Adicionar um comentário em requirements.txt
fez isso, mas essa não é uma solução desejada.
Tudo bem, isso parece ser um problema de cache para o CircleCI.
Alguém poderia entrar em contato com o pessoal do CircleCI (através de seus canais de suporte)? Seria ótimo se eles pudessem investigar isso e possivelmente entrar em contato aqui.
Olá pessoal,
Eu realmente não sei se isso ajuda você de alguma forma, mas recebi a mesma mensagem de erro na minha configuração do MSYS tentando instalar o WeasyPrint.
Depois de desinstalar o python3-pip e o python3-setuptools, apaguei todas as pastas pip em /usr/lib/python3.7/site-packages/ e reinstalei ambos .. resolvi esse erro específico.
pacman -R python3-pip python3-setuptools
rm -R /usr/lib/python3.7/site-packages/pip
rm -R /usr/lib/python3.7/site-packages/pip-19.3.1.dist-info
pacman -S python3-pip python3-setuptools
Para ser justo, agora me deparei com problemas de compilador ... mas talvez eu possa ajudar ....
Caso isso possa ajudar, encontrei o erro em um contexto diferente: ao copiar um ambiente virtual de uma imagem docker para outra, em uma configuração de vários estágios.
A imagem de origem contém uma versão menos recente de pip
enquanto a imagem de destino contém uma versão atualizada de pip
. Após copiar o diretório do ambiente virtual da imagem de origem para a imagem de destino, existem 2 diretórios diferentes ( pip-<version>.dist-info
) sob o ambiente virtual site-packages
e pip
não funciona, dando o mesmo erro relatado nesta edição.
Não gastei tempo solucionando o problema, pois sou um pouco cético em relação a essa abordagem que envolve a cópia do ambiente virtual em um ambiente onde já existem pacotes instalados.
De qualquer forma, parece ser um problema de colisão de pacotes.
Espero que isto ajude! :sorriso:
Oi
Acredito que vemos o mesmo problema em nosso servidor ReadTheDocs interno. Ele executa o seguinte comando ao construir um documento:
var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/bin/python -m pip install --upgrade --cache-dir /var/lib/readthedocs/repo/user_builds/some_doc/.cache/pip pip
Se eu limpar o cache de compilação por meio da interface GUI ReadTheDocs, a compilação será bem-sucedida - mas somente até a próxima vez que uma compilação for iniciada.
Aqui está o registro completo:
Traceback (most recent call last):
File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/__main__.py", line 16, in <module>
from pip._internal import main as _main # isort:skip # noqa
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/__init__.py", line 40, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/cli/main_parser.py", line 11, in <module>
from pip._internal.commands import (
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/commands/__init__.py", line 9, in <module>
from pip._internal.commands.download import DownloadCommand
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/commands/download.py", line 10, in <module>
from pip._internal.operations.prepare import RequirementPreparer
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 9, in <module>
from pip._internal.distributions import (
File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution'
Oi,
Eu também encontrei o problema.
SO: Debian GNU/Linux 10 (Linux 4.19.0-6-amd64)
pip: 19.3.1
conda: 4.7.12
Python: 3.7.4
$ pip
Traceback (última chamada mais recente):
Arquivo "/home/jiang/anaconda3/bin/pip", linha 7, em
de pip._internal import main
Arquivo "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/__init__.py", linha 40, em
de pip._internal.cli.autocompletion importar preenchimento automático
Arquivo "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", linha 8, em
de pip._internal.cli.main_parser importar create_main_parser
Arquivo "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", linha 11, em
de pip._internal.commands import (
Arquivo "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", linha 9, em
de pip._internal.commands.download import DownloadCommand
Arquivo "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/commands/download.py", linha 10, em
de pip._internal.operations.prepare import RequirementPreparer
Arquivo "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", linha 9, em
da importação de pip._internal.distributions (
Arquivo "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", linha 1, em
de pip._internal.distributions.source import SourceDistribution
ImportError: não é possível importar o nome 'SourceDistribution' de 'pip._internal.distributions.source' (/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
Conseguimos contornar nosso servidor ReadTheDocs local alterando o fluxo de compilação para usar especificamente a versão 19.2.3 do pip. Agora ReadTheDocs executa o seguinte comando de compilação - e não temos mais problemas de cache:
/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/bin/python -m pip install --upgrade --cache-dir /var/lib/readthedocs/repo/user_builds/some_doc/.cache/pip pip==19.2.3
Mais especificamente, atualizamos o arquivo python_environment.py local para usar uma versão específica do pip: https://github.com/readthedocs/readthedocs.org/blob/7212d6ff738b24a10fb0f4227d3fbdf69e5cab42/readthedocs/doc_builder/python_environments.py#L322
cmd = pip_install_cmd + ['pip']
alterado para:
cmd = pip_install_cmd + ['pip==19.2.3']
Eu sei que minha configuração pode ser diferente da maioria, mas o problema do meu lado foi devido ao diretório PIP sources/
no ambiente virtual (provavelmente problemas de cache PIP ou algo assim). Deixe-me explicar:
Ao excluir o diretório user_builds/project/envs/
de um projeto e reconstruí-lo, ele funciona, mas somente até que você reconstrua com o diretório envs/
presente novamente. Passei muito tempo depurando qual era o problema e descobri que era o diretório user_builds/project/envs/
(ou algo dentro) causando problemas. Então eu fiz mais testes para descobrir que era o diretório user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/source/
que estava causando problemas especificamente. Eu removi o diretório user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/source/
, reconstruí e estava tudo bem. Eu reconstruí novamente e falhou. Eu verifiquei o diretório user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/
novamente e vi que source/
estava presente. Então eu fui para minha instalação global do Python e movi o diretório /path/to/lib/python3.6/dist-packages/pip/_internal/distributions/source/
do PIP, removi o diretório user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/source/
do ambiente do projeto e reconstruí. Isso foi construído com sucesso e não copiou a pasta source/
, perfeito. Então, agora, sempre que os documentos são compilados, eles são compilados sem erros. Espero que isto ajude alguém.
Felicidades.
Tente isto:
1.curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
2.python get-pip.py
@Guru36
Tentei isso muitas vezes sem sucesso. Você tem que fazer isso no início de qualquer maneira, então isso não ajudaria. Obrigado mesmo assim.
Felicidades.
Tente isto:
1.curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
2.python get-pip.py
Obrigada
Agora estou tendo problemas com isso na versão 0.20.
Olhando para isso agora pessoal. Se alguém pudesse fornecer instruções sobre como reproduzir com pip 20.0, seria ótimo!
Eu me deparo com o mesmo problema:
virtualenv venv
. venv/bin/activate
pip install sqlalchemy pymysql
resulta em
Traceback (most recent call last):
File "/tmp/test/venv/bin/pip", line 11, in <module>
sys.exit(main())
File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/cli/main.py", line 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
module = importlib.import_module(module_path)
File "/tmp/test/venv/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 24, in <module>
from pip._internal.cli.req_command import RequirementCommand
File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
from pip._internal.operations.prepare import RequirementPreparer
File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
from pip._internal.distributions import (
File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/distributions/source/__init__.py)
Se alguém puder fornecer instruções de como reproduzir com pip 20.0,
Em suma, "tente usar pip"! Os resultados de tentar instalar o scipy em um ambiente virtual funcional, que já possui o scipy instalado (ou seja, espero que o pip não faça nada):
(farmcat3) [danielevans@rml-dev06 farmcat]$ pip install pip==20.0
Looking in indexes: https://pypi.org/simple, http://phabricator.jbarisk.com:8080
Collecting pip==20.0
Downloading https://files.pythonhosted.org/packages/60/65/16487a7c4e0f95bb3fc89c2e377be331fd496b7a9b08fd3077de7f3ae2cf/pip-20.0-py2.py3-none-any.whl (1.5MB)
|████████████████████████████████| 1.5MB 1.7MB/s
Installing collected packages: pip
Found existing installation: pip 19.3.1
Uninstalling pip-19.3.1:
Successfully uninstalled pip-19.3.1
pipSuccessfully installed pip-20.0
(farmcat3) [danielevans@rml-dev06 farmcat]$ pip install scipy
Traceback (most recent call last):
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/bin/pip", line 8, in <module>
sys.exit(main())
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/cli/main.py", line 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
module = importlib.import_module(module_path)
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib64/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 24, in <module>
from pip._internal.cli.req_command import RequirementCommand
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
from pip._internal.operations.prepare import RequirementPreparer
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
from pip._internal.distributions import (
File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution'
O truque curl get-pip.py
não funcionou para mim, mas resolvi procurar diferenças entre meu venv e o "código oficial" instalado no sistema. (Estou em um cluster, _so hic sunt leones_...)
--- /usr/lib/python2.7/site-packages/pip/_internal/distributions/__init__.py 2019-10-28 08:47:20.727522000 +0100
+++ /home/dummyuser/ml/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py 2020-01-21 12:55:48.000000000 +0100
@@ -1,4 +1,4 @@
-from pip._internal.distributions.source.legacy import SourceDistribution
+de pip._internal.distributions.source import SourceDistribution
de pip._internal.distributions.wheel import WheelDistribution
de pip._internal.utils.typing import MYPY_CHECK_RUNNING
Mudar para python -m pip
ajudou na minha situação. De https://github.com/ome/jenkins-library-recursivemerge/pull/4/files
Falha:
(cd build && curl -sfL ${buildInfraUrl} | tar -zxf -)
virtualenv build/venv && build/venv/bin/pip install ${sccPackage}
Passes:
python -m venv build/venv
. build/venv/bin/activate
python -m pip install ${sccPackage}
@pradyunsg , no Fedora 29 posso reproduzir assim:
rm -rf ~/.local/lib/python3.7
sudo dnf install python3-pip
pip3.7 install -U --user pip
python3.7 -m pip install requests
```
Traceback (última chamada mais recente):
Arquivo "/usr/lib64/python3.7/runpy.py", linha 193, em _run_module_as_main
"__main__", mod_spec)
Arquivo "/usr/lib64/python3.7/runpy.py", linha 85, em _run_code
exec(código, run_globals)
Arquivo "/home/kaiant/.local/lib/python3.7/site-packages/pip/__main__.py", linha 19, em
sys.exit(_main())
Arquivo "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/cli/main.py", linha 73, em main
comando = create_command(cmd_name, isolated=("--isolated" em cmd_args))
Arquivo "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", linha 96, em create_command
modulo = importlib.import_module(module_path)
Arquivo "/usr/lib64/python3.7/importlib/__init__.py", linha 127, em import_module
return _bootstrap._gcd_import(nome[nível:], pacote, nível)
Arquivo "
Arquivo "
Arquivo "
Arquivo "
Arquivo "
Arquivo "
Arquivo "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/commands/install.py", linha 24, em
de pip._internal.cli.req_command import RequirementCommand
Arquivo "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", linha 20, em
de pip._internal.operations.prepare import RequirementPreparer
Arquivo "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", linha 16, em
da importação de pip._internal.distributions (
Arquivo "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", linha 1, em
de pip._internal.distributions.source import SourceDistribution
ImportError: não é possível importar o nome 'SourceDistribution' de 'pip._internal.distributions.source' (/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
Acabei de receber isso quando minha implantação atualizou automaticamente o pip de 19.3.1 para 20.0
Tudo já está usando python -m pip - esse não é o problema aqui
Posso te dizer que a correção do JediKev, que é deletar esta pasta:
site-packages/pip/_internal/distributions/source
corrigiu o problema
Um contexto Python Docker simples usando o contêiner python:3.7-slim
(baseado em Debian) também é afetado:
[32;1m$ docker build --compress -t $REGISTRY_IMAGE_SPARROW .[0;m
#2 [internal] load .dockerignore
#2 transferring context: 493B done
#2 DONE 0.0s
#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 1.22kB done
#1 DONE 0.0s
#3 [internal] load metadata for docker.io/library/python:3.7-slim
#3 DONE 0.8s
#4 [base 1/6] FROM docker.io/library/python:3.7-slim<strong i="7">@sha256</strong>:5886bc9424f2edc...
#4 DONE 0.0s
#5 [internal] load build context
#5 transferring context: 531.72kB 0.0s done
#5 DONE 0.0s
#10 [base 6/6] RUN pip install --upgrade pip
#10 CACHED
#8 [base 4/6] RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards co...
#8 CACHED
#9 [base 5/6] WORKDIR /app
#9 CACHED
#6 [base 2/6] COPY docker-entrypoint.sh /usr/local/bin/
#6 CACHED
#7 [base 3/6] RUN chmod +x /usr/local/bin/docker-entrypoint.sh
#7 CACHED
#11 [requirements 1/2] COPY requirements.txt requirements.txt
#11 CACHED
#12 [requirements 2/2] RUN pip install --no-cache-dir -r requirements.txt
#12 0.912 Traceback (most recent call last):
#12 0.912 File "/usr/local/bin/pip", line 8, in <module>
#12 0.912 sys.exit(main())
#12 0.912 File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/main.py", line 73, in main
#12 0.912 command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
#12 0.912 File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
#12 0.912 module = importlib.import_module(module_path)
#12 0.912 File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
#12 0.912 return _bootstrap._gcd_import(name[level:], package, level)
#12 0.912 File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
#12 0.912 File "<frozen importlib._bootstrap>", line 983, in _find_and_load
#12 0.912 File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
#12 0.912 File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
#12 0.913 File "<frozen importlib._bootstrap_external>", line 728, in exec_module
#12 0.913 File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
#12 0.913 File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 24, in <module>
#12 0.913 from pip._internal.cli.req_command import RequirementCommand
#12 0.913 File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
#12 0.913 from pip._internal.operations.prepare import RequirementPreparer
#12 0.913 File "/usr/local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
#12 0.913 from pip._internal.distributions import (
#12 0.913 File "/usr/local/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
#12 0.913 from pip._internal.distributions.source import SourceDistribution
#12 0.913 ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/usr/local/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
#12 ERROR: executor failed running [/bin/sh -c pip install --no-cache-dir -r requirements.txt]: runc did not terminate sucessfully
------
> [requirements 2/2] RUN pip install --no-cache-dir -r requirements.txt:
------
failed to solve with frontend dockerfile.v0: failed to build LLB: executor failed running [/bin/sh -c pip install --no-cache-dir -r requirements.txt]: runc did not terminate sucessfully
Tem a mesma coisa em python:3.7.6-alpine
rodando em ações do github
Eu posso reproduzir este erro em um Dockerfile
:
FROM python:3.7
COPY requirements.txt .
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
CMD pip --version
E em requirements.txst
:
Quando eu construo esta imagem, recebo este erro desagradável. Se eu remover a linha que atualiza o pip, a imagem é compilada.
Ok, eu reproduzi isso localmente -- vou arquivar um PR com uma correção em breve.
Remover a pasta ./site-packages/pip/_internal/distributions/source ajuda!
Sim, pip versão 20.0 quebra
Sim, tendo o mesmo problema aqui (pip 20.0).
Sim, pip 20.0 quebra , usando "virtualenv ." comando para criar venv
O mesmo aqui, todas as nossas compilações de CI que atualizam o pip estão falhando.
Todas as compilações estão quebradas devido ao mesmo erro do nosso lado também.
Compilações quebradas
E se eu reverter para o pip 19.x? Funcionaria?
EDITAR:
pip install --upgrade "pip==19.3.1"
ainda funciona.
O mesmo aqui com python 3.7.3 e pip 20.0
pip install pip"<20.0"
solução temporária, mas funciona.
talvez seja possível criar um virtualenv
configurando pip
versio para 19.3.1 (o anterior)
Uma solução rápida que está funcionando é
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip==9.0.2
Salvou nosso pipeline de CI
O Read The Docs também sofre com esse problema agora, fazendo com que a construção de documentos falhe consistentemente
talvez seja possível criar uma configuração virtualenv pip versio para 19.3.1 (o anterior)
@manutero, o --no-download
bandeira do virtualenv
comando irá evitar a tentar baixar a versão mais recente de pip
no momento da criação do ambiente.
Se você usar virtualenv, faça o downgrade para 19.x. Isso resolveu o problema no meu virtualenv:
virtualenv --no-pip <ENV NAME>
# activate the virtual environment
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip==19.2.2
Tive que selecionar a versão anterior para resolver,
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip=19.3.1
O mesmo aqui com python 3.7.6 e pip 20.0
pip versão-20.0
versão python - 3.6
Basta escrever abaixo das linhas no arquivo
from .legacy import SourceDistribution
Outras pessoas que estão vendo essa falha podem confirmar que há uma pasta/fonte em pip/_internal/distributions?
Se você puder confirmar que a pasta existe, não comente aqui - use a reação 👍 neste post. Essa pasta não existe, use a 👎 reação.
mesmo problema aqui com o Ubuntu 19.04
Successfully installed pip-20.0
Traceback (most recent call last):
File "/home/pippo/.venvs/test_pgm/bin/pip", line 10, in <module>
sys.exit(main())
File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/cli/main.py", line 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
module = importlib.import_module(module_path)
File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 24, in <module>
from pip._internal.cli.req_command import RequirementCommand
File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
from pip._internal.operations.prepare import RequirementPreparer
File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
from pip._internal.distributions import (
File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
Ele não aparece com pip==19.2.3 então por enquanto eu reverti
Por favor, pare de denunciar "eu também". @pradyunsg está trabalhando em uma correção agora
Sim. bater isso agora funcionou ontem.
snippet para usuários do pipenv
wget https://bootstrap.pypa.io/get-pip.py -O get-pip.py
pipenv run python get-pip.py pip==19.3
Para uma correção rápida,
$(which easy_install) pip==19.3
também funciona ok
Para uma correção rápida,
$(which easy_install) pip==19.3
também funciona ok
Entre todas as soluções temporárias, apenas esta funcionou para mim
Eu me pergunto o que acontecerá quando eles removerem o easy_install... :) - Como vamos corrigir os problemas do pip então?
Substituindo pip install --upgrade pip
por pip install --upgrade pip"<20.0"
trabalhando aqui.
Tive que selecionar a versão anterior para resolver,
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip=19.3.1
Deve ser python3 get-pip.py pip==19.3.1
Substituindo
pip install --upgrade pip
porpip install --upgrade pip"<20.0"
trabalhando aqui.
Me ajude no docker
RUN pip install --upgrade pip"<20.0"
Obrigado @PabloCastellano! Estou apenas ignorando os comentários aqui agora, já que não quero que minha frequência cardíaca suba mais. :)
Feito o lançamento da correção de bugs. Se isso ajudou, use 👍 neste post. Caso contrário, escreva um comentário com a mensagem de erro.
XD
Não quero que minha frequência cardíaca suba mais. :)
Feito o lançamento da correção de bugs.
@pradyunsg Você acabou de baixar o meu. Parece funcionar.
@SergeyLadutko :
Substituindo
pip install --upgrade pip
porpip install --upgrade pip"<20.0"
trabalhando aqui.Me ajude no docker
RUN pip install --upgrade pip"<20.0"
tente pip install --upgrade pip==19.3.1
ok, deixe-me executar minha compilação novamente
@pradyunsg Tiremos o
Observe que get-pip.py ainda não foi atualizado - isso porque, bem, eu bordei meu próprio ambiente de desenvolvimento para get-pip ao testar isso. :)
Vou atualizar isso nos próximos minutos.
Pode confirmar. pip==20.0.1
está funcionando bem
@pradyunsg alguma melhoria de CI para que isso não aconteça no futuro? Um contêiner docker seria suficiente. Você aceitaria PRs para isso?
Observe que get-pip.py ainda não foi atualizado - isso porque, bem, eu bordei meu próprio ambiente de desenvolvimento para get-pip ao testar isso. :)
Vou atualizar isso nos próximos minutos.
:) deixe-nos saber quando isso será bom para ir
Vou atualizar isso nos próximos minutos.
Tudo bem, empurrou isso agora. A mudança deve ter se propagado para bootstrap.pypa.io agora. Ou será muito em breve.
Nossa compilação agora passou com get-pip.py obrigado @pradyunsg
pip 20.0.1 funcionando corretamente. Obrigado @pradyunsg
Posso confirmar, o novo pip
fica instalado agora que não sofre mais com esse erro. Obrigado @pradyunsg !
Obrigado @pradyunsg !!
obrigado @pradyunsg ! assim tanto
obrigado @pradyunsg pela solução rápida! 🎉
Obrigado @pradyunsg pelo
Eu acho que o problema foi criado porque existe um diretório de módulo source
, bem como source.py
no caminho pip/_internal/distributions
e isso atrapalha as importações
Em pip/_internal/distributions/__init__.py
tenha uma linha de importação:
from pip._internal.distributions.source import SourceDistribution # <-- here
from pip._internal.distributions.wheel import WheelDistribution
from pip._internal.utils.typing import MYPY_CHECK_RUNNING
Mas também há um diretório source
com __init__.py
lá dentro,
env ~/.../_internal/distributions ls -ltr
total 32
-rw-r--r-- 1 user xxx 1294 Jan 21 18:02 wheel.py
-rw-r--r-- 1 user xxx 760 Jan 21 18:02 installed.py
-rw-r--r-- 1 user xxx 1425 Jan 21 18:02 base.py
drwxr-xr-x 3 user xxx 4096 Jan 21 18:02 source
-rw-r--r-- 1 user xxx 4201 Jan 21 18:19 source.py
-rw-r--r-- 1 user xxx 961 Jan 21 18:26 __init__.py
drwxr-xr-x 2 user xxx 4096 Jan 21 18:26 __pycache__
Portanto, essa importação falhará. Renomear o source.py
para _source.py
e alterar a importação em __init__.py
para from pip._internal.distributions._source import SourceDistribution
parece corrigi-lo
@pradyunsg Tiremos o
Concordo, reviravolta fantástica na correção aqui!
Obrigado @pradyunsg
Mesmo erro acima.
Versão do Python: python-3.7.6
SO: Windows
Funciona depois de passar para o PIP 19.3.1
Funciona muito bem agora, obrigado.
Considerando a natureza desse bug, você pode remover a versão 20.0 do PYPA? https://pypi.org/project/pip/#history
Outra questão seria o que poderíamos fazer para evitar uma regressão semelhante no futuro.
Desculpe a todos pela quebra e obrigado por trabalhar conosco aqui para consertar essa quebra!
@xavfernandez descobriu por que isso aconteceu e faremos alterações em nosso processo de lançamento para evitar falhas semelhantes no futuro: #7624
ótimo trabalho, obrigado pelo retorno rápido como um raio!
Olá, estou preso em 20.0
Todos os comandos que tentei retornaram este erro sobre 'SourceDistribution'.
pip install --upgrade pip
pip install pip "<20.0"
pip install --upgrade "pip==19.3.1"
Eu cansei de desinstalar também:
pip uninstall pip
python -m pip uninstall pip setuptools
Alguém tem outra solução para desinstalar o pip?
Ubuntu 18.04.3 LTS
Python 3.6.9
executar em virtualenv
Olá @CharrierCoop! Você deve conseguir baixar get-pip.py e instalar o pip 20.0.1 usando isso.
Perfeito !!
obrigado @pradyunsg
você pode remover a versão 20.0 do PYPA?
Não. Não vamos excluí-lo. Temos um recurso com suporte padrão para "arrancar" versões quebradas. Assim que o PyPI adicionar suporte para isso, lançaremos esta versão (se alguém se importar até lá).
Consulte https://www.python.org/dev/peps/pep-0592/#motivation para obter mais detalhes.
sudo python get-pip.py pip==19.3.1"
corrigir este problema
sudo python get-pip.py pip==19.3.1"
corrigir este problema
Muito obrigado
sudo python get-pip.py pip==19.3.1"
corrigir este problema
Não há necessidade de que este problema tenha sido corrigido por @pradyunsg
Olá @CharrierCoop! Você deve conseguir baixar get-pip.py e instalar o pip 20.0.1 usando isso.
Tentei fazer o mesmo no Raspberry Pi 4 (Python 3.7.3, versão pip - 20.0 e OS - Raspbian Buster Lite), mas não obtive sucesso.
ERRO: Não foi possível encontrar uma versão que satisfaça o requisito pi p
ERRO: Nenhuma distribuição correspondente encontrada para pip
Qualquer solução?
@ Gilf641 Por favor, registre um novo problema - será mais fácil de gerenciar para os mantenedores.
Vou encerrar este problema agora, pois parece que as coisas estão funcionando para a maioria dos usuários.
Se você ainda estiver enfrentando problemas, procure duplicatas arquivadas anteriormente (desde 21 de janeiro, para pip 20.0) e, se não houver, registre um novo problema.
Comentários muito úteis
Obrigado @PabloCastellano! Estou apenas ignorando os comentários aqui agora, já que não quero que minha frequência cardíaca suba mais. :)
Feito o lançamento da correção de bugs. Se isso ajudou, use 👍 neste post. Caso contrário, escreva um comentário com a mensagem de erro.