Importar builtins na versão 0.17.0 causa erro.
>>> import builtins
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named builtins
>>>
Temos o mesmo problema aqui.
Tentando apontar a origem do problema, mas ainda não está claro.
Temos o mesmo problema, mas curiosamente, se instalarmos sem cache dir, funciona ...
pip install -U --force future
>>> import builtins
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named builtins
>>>
pip install -U --force --no-cache-dir future
>>> import builtins
>>>
no Windows, removendo o futuro 0.17.0 em cache de C: \ Usuários \
então parece (é uma teoria) que a publicação anterior de 0.17.0 foi interrompida, mas agora está corrigida.
@jmadler nos
Diga-me, por favor, você não construiu future
wheel com Python-3 e tentou usá-lo com Python-2? Nesse caso, essa pode ser a causa do problema.
bem, se o futuro wheel for construído pelo python 3, armazenado em cache como universal e, em seguida, recuperado pelo python 2 do cache, pode ser isso.
Desculpe pessoal! Esta é a minha primeira distribuição deste pacote específico (e também do PyPI ...)
Quando fiz a compilação, executei python setup.py sdist
com Py3 e testei pip install dist/future-0.17.0.tgz
em Py2 e Py3 e validei a instalação por meio desse mecanismo. Conduzi a validação da instalação testando algumas importações e dir () no REPL para builtins, reprlib e futuros
Uma vez validado, executei twine upload dist/future-0.17.0.tgz
para levá-lo ao PyPI.
pip2 --version && pip3 --version
:
pip 10.0.1 de /usr/local/lib/python2.7/site-packages/pip (python 2.7)
pip 18.0 de /usr/local/lib/python3.7/site-packages/pip (python 3.7)
Outra possibilidade é que o bdist_wheel local seja construído em Py3 e armazenado em cache em algum lugar e tratado como universal (quando não é), mas eu não carreguei uma roda para PyPI.
Não consigo reproduzir em um venv vazio com pip install future==0.17.0
para Py2 e Py3 em minha máquina macOS.
É possível que o PyPI esteja reescrevendo o pacote de alguma forma? Ou talvez o comportamento do pip tenha mudado?
no Windows, removendo o futuro 0.17.0 em cache de C: \ Usuários
\ AppData \ Local \ pip e, em seguida, reinstalar o pacote corrige o problema. então parece (é uma teoria) que a publicação anterior de 0.17.0 foi interrompida, mas agora está corrigida.
Eu também acho. Talvez alguém possa liberar 0.17.1 com correção)
De fato, se o pacote for instalado via py3, ele será armazenado em cache no cache local do pip. Qualquer instalação futura de future
(beit py2 ou py3) usará esta versão em cache como seu universal marcado.
No entanto, o setup.py https://github.com/PythonCharmers/python-future/blob/master/setup.py#L61 tem essa condicional que torna a roda gerada (agora no cache pip) incompatível para py2 (uma vez que foi construído para py3). Eu imagino que se a roda for gerada via py2, isso pode significar más notícias para uma instalação de py3.
@jmadler O problema foi resolvido no master, a única coisa restante seria mesclar o PR # 404 e a versão v0.17.1
Agora, com a v0.17.0, qualquer usuário que use Py2 e Py3 em sua máquina corre o risco de obter um cache de pip wheel ruim e atingir esse erro.
É possível liberar o mais rápido possível? Se você tiver alguma dúvida / preocupação, pergunte, terei todo o gosto em ajudar 😃
Parece bom, lancei o 0.17.1 com # 399 e # 404 incluídos. Você pode dar uma olhada e me dizer se isso aborda esse problema para você?
A1 - fixo.
Degraus:
1) Gire uma máquina Windows 10 virgem com Python 3.6 e Python 2.7 instalados
2) pip install futuro em um contexto Python 3.6 - confirme se a roda foi construída e armazenada em cache
instalação de pip py -3,6 -m futuro
roda em cache: future-0.17.1-cp36-none-any.whl
3) pip install futuro em um contexto Python 2.7 - confirme se a roda foi construída novamente e não usando a versão em cache da etapa 2)
instalação de pip py -2,7 -m futuro
roda em cache: future-0.17.1-cp27-none-any.whl
4) Em uma sessão do Python 2, importe os builtins e nenhum erro acontecerá
py -2,7
Python 2.7.8 (padrão, 30 de junho de 2014, 16:03:49) [MSC v.1500 32 bits (Intel)] no win32
Digite "ajuda", "copyright", "créditos" ou "licença" para obter mais informações.
importar embutidos
pela comparação 0.17.0 tinha esta roda única: future-0.17.0-py2.py3-none-any.whl
Tive esse problema com o 0.17.0 e posso confirmar que o 0.17.1 o corrigiu.
Fico feliz em ouvir isso!
Obrigado Gilles, Vincent, et al. Sua orientação foi muito útil :)
Comentários muito úteis
Temos o mesmo problema, mas curiosamente, se instalarmos sem cache dir, funciona ...