La importación de archivos incorporados en la versión 0.17.0 provoca un error.
>>> import builtins
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named builtins
>>>
Tenemos el mismo problema aquí.
Intentando señalar el origen del problema, pero aún no está claro.
Tenemos el mismo problema, pero curiosamente, si instalamos pip sin el directorio de caché, 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
>>>
en Windows, eliminando el futuro en caché 0.17.0 whl de C: \ Users \
por lo que parece (es una teoría) que la publicación anterior de 0.17.0 se rompió, pero ahora está arreglada.
@jmadler háganos saber lo que sucedió, nos gustaría comprender el contexto.
Dime, por favor, ¿no has construido future
wheel con Python-3 y has intentado usarlo con Python-2? Si es así, esta puede ser la causa del problema.
bueno, si la rueda del futuro es construida por Python 3, almacenada en caché como universal y luego recuperada por Python 2 de la caché, eso podría ser.
¡Lo siento amigos! Esta es mi primera distribución de este paquete en particular (y PyPI también ...)
Cuando hice la compilación, ejecuté python setup.py sdist
con Py3, y probé pip install dist/future-0.17.0.tgz
tanto en Py2 como en Py3 y lo validé instalado a través de ese mecanismo. Realicé la validación de la instalación probando algunas importaciones y dir () en el REPL para las versiones integradas, reprlib y futuras
Una vez validado, ejecuté twine upload dist/future-0.17.0.tgz
para subirlo a 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)
Otra posibilidad es que el bdist_wheel local esté construido en Py3 y almacenado en caché en algún lugar y tratado como universal (cuando no lo es), pero no cargué una rueda en PyPI.
No puedo reproducir en un venv vacío con pip install future==0.17.0
para Py2 y Py3 en mi máquina macOS.
¿Es posible que PyPI esté reescribiendo el paquete de alguna manera? ¿O quizás ha cambiado el comportamiento de pip?
en Windows, eliminando el futuro en caché 0.17.0 whl de C: \ Users
\ AppData \ Local \ pip y luego reinstalar el paquete lo corrige. por lo que parece (es una teoría) que la publicación anterior de 0.17.0 se rompió, pero ahora está arreglada.
Creo también. Tal vez alguien pueda lanzar 0.17.1 con corrección)
De hecho, si el paquete se instala a través de py3, se almacenará en caché en la caché pip local. Cualquier instalación futura de future
(beit py2 o py3) usará esta versión en caché como su marcada universal.
Sin embargo, setup.py https://github.com/PythonCharmers/python-future/blob/master/setup.py#L61 tiene ese condicional que hace que la rueda generada (ahora en el caché de pip) sea incompatible para py2 (ya que fue construido para py3). Me imagino que si la rueda se genera a través de py2, podría significar malas noticias para una instalación de py3.
@jmadler El problema se aborda en master, lo único que quedaba sería fusionar PR # 404 y lanzar v0.17.1
En este momento, con la v0.17.0, cualquier usuario que use Py2 y Py3 en su máquina corre el riesgo de tener un caché de rueda de pip defectuoso y encontrar este error.
¿Es posible sacar un comunicado lo antes posible? Si tiene alguna pregunta / inquietud, pregunte, estaré encantado de ayudar 😃
Suena bien, publiqué 0.17.1 con # 399 y # 404 incluidos. ¿Puede echar un vistazo y hacerme saber si soluciona este problema?
A1 - fijo.
Pasos:
1) Haga girar una máquina virgen con Windows 10 con Python 3.6 y Python 2.7 instalados
2) pip install future en un contexto de Python 3.6: confirme que la rueda está construida y almacenada en caché
py -3.6 -m pip instalar futuro
rueda en caché: future-0.17.1-cp36-none-any.whl
3) pip install future en un contexto de Python 2.7: confirme que la rueda está construida nuevamente y no está usando la versión en caché del paso 2)
py -2.7 -m pip instalar futuro
rueda en caché: future-0.17.1-cp27-none-any.whl
4) En una sesión de Python 2, importe los archivos incorporados y no se produzcan errores
py -2,7
Python 2.7.8 (predeterminado, 30 de junio de 2014, 16:03:49) [MSC v.1500 de 32 bits (Intel)] en win32
Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información.
importar incorporados
por comparación, 0.17.0 tenía esta única rueda: future-0.17.0-py2.py3-none-any.whl
Tuve este problema con 0.17.0 y puedo confirmar que 0.17.1 lo solucionó.
¡Alegra oírlo!
Gracias Gilles, Vincent, et al. Tu orientación ha sido muy útil :)
Comentario más útil
Tenemos el mismo problema, pero curiosamente, si instalamos pip sin el directorio de caché, funciona ...