Revisó la documentación de diagnóstico para problemas comunes. Describí mi flujo de trabajo (posiblemente defectuoso) en los pasos para reproducir a continuación. He estado preocupado por esto durante un par de semanas culpándome a mí mismo, y me encantaría que esto fuera un error.
El último paquete externo que aparece en la sección predeterminada de Pipfile.lock se marca incorrectamente como local y editable
El último paquete externo enumerado todavía se proporciona desde pypi
Mi Pipfile.lock incluye esta diferencia, que rompe a CI y a otros usuarios por razones obvias:
"version": "==1.25.10"
},
"wrapt": {
- "hashes": [
- "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
- ],
- "version": "==1.12.1"
+ "editable": true,
+ "path": "."
}
},
"develop": {
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
flake8 = "3.8.3"
pytest = "5.4.3"
pytest-cov = "2.10.0"
termcolor = "1.1.0"
[packages]
mycli = {editable = true, path = "."}
[requires]
python_version = "3.7"
(mycli tiene un setup.py para facilitar la creación de un punto de entrada para el clic de Python y define las dependencias que no son de desarrollo)
El proyecto es una utilidad CLI y clonamos el repositorio e instalamos a través de:
PIPENV_IGNORE_VIRTUALENVS=1 PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy
Como desarrollador que agrega una nueva dependencia, edito setup.py
y ejecuto:
pipenv lock
Esto genera un archivo Pipfile.lock que incluye mi nueva dependencia, pero también una última dependencia predeterminada mal formada (he tenido el problema con varios paquetes que están cerca del final del alfabeto en esa posición, específicamente wrapt
y zipp
)
Puedo solucionar el problema y generar un Pipfile.lock correcto mediante:
rm -rf Pipfile.lock .venv
y
pipenv lock
Estoy omitiendo a propósito la salida pipenv --support
porque la aplicación en la que estoy trabajando es propietaria y me preocupa que se filtren detalles de nuestro entorno (o que nuestro equipo de seguridad me grite: riendo :). Si hay fragmentos específicos que pueda eliminar y proporcionar, me complacería hacerlo, pero no quería eliminar todo desde el principio.
Gracias por leer y nuevamente, espero ser tonto.
¡Gracias!
@patelamol y puedo reproducir esto con pipenv 2020.08.13.
Experimenté este error en la última versión hasta 2018.11.26
. Entonces 2018.11.26
no tiene este problema.
Como comentaron @jmehnle y @patelamol , he estado experimentando un problema similar con algunos de mis paquetes en este caso
"zipp": {
"editable": true,
"path": "."
},
Mi solución fue editar manualmente el bloqueo del archivo pip, que es inseguro / insalubre a la última versión
"zipp": {
"hashes": [
"sha256:43f4fa8d8bb313e65d8323a3952ef8756bf40f9a5c3ea7334be23ee4ec8278b6",
"sha256:b52f22895f4cfce194bc8172f3819ee8de7540aa6d873535a8668b730b8b411f"
],
"version": "==3.2.0"
}
Me pregunto si habrá una actualización de pipenv próximamente con esta corrección de errores.
@gregflynn @patelamol Entonces, ¿existe este problema en la rama maestra? No puedo reproducir con los pasos dados
@gregflynn @patelamol Entonces, ¿existe este problema en la rama maestra? No puedo reproducir con los pasos dados
¡Seguramente! No he ejecutado pipenv desde github antes y no vi instrucciones en el archivo README, así que seré detallado sobre los pasos:
pyenv virtualenv 3.7.9 pipenv
&& pyenv local pipenv
&& pip install -e .
$ ~/.pyenv/versions/pipenv/bin/pipenv --version
pipenv, version 2020.8.13.dev0
```
stockquotes == 2.0.0
a mi setup.py~/.pyenv/versions/pipenv/bin/pipenv lock
"wrapt": {
- "hashes": [
- "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
- ],
- "version": "==1.12.1"
+ "editable": true,
+ "path": "."
}
},
@frostming gracias por la sugerencia y echar un vistazo, feliz de hacer más pruebas o corregir esta prueba si me he descarriado.
@gregflynn
- hizo un nuevo venv con 2020.8.13
¿Es este paso fundamental para reproducir el error? Creo con el maestro Pipenv y no puedo reproducir. Una imagen de Docker sería de gran ayuda si es posible
@gregflynn
- hizo un nuevo venv con 2020.8.13
¿Es este paso fundamental para reproducir el error? Creo con el maestro Pipenv y no puedo reproducir. Una imagen de Docker sería de gran ayuda si es posible
Buen ojo, pero hice los siguientes cambios y aún pude reproducir con la última versión maestra. Para el paso 4, actualicé mi script de instalación:
-PIPENV_IGNORE_VIRTUALENVS=1 PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy
+PIPENV_IGNORE_VIRTUALENVS=1 PIPENV_VENV_IN_PROJECT=1 $HOME/.pyenv/versions/pipenv/bin/pipenv install --deploy
y todavía tengo:
"wrapt": {
- "hashes": [
- "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
- ],
- "version": "==1.12.1"
+ "editable": true,
+ "path": "."
}
},
¡Feliz de probar más cosas! Gracias
¡Oh, logré reproducirlo! No noté que el factor crítico es VENV_IN_PROJECT.
¡Oh, logré reproducirlo! No noté que el factor crítico es VENV_IN_PROJECT.
: raise_hands: ¡buenas noticias! lo siento, me olvidé de darte un Dockerfile, me perdí esa nota en mi primera lectura
Comentario más útil
Como comentaron @jmehnle y @patelamol , he estado experimentando un problema similar con algunos de mis paquetes en este caso
Mi solución fue editar manualmente el bloqueo del archivo pip, que es inseguro / insalubre a la última versión
Me pregunto si habrá una actualización de pipenv próximamente con esta corrección de errores.