intenté agregar flower
al proyecto, pero pipenv lock
está eligiendo la versión más nueva tornado
(5.1) en lugar de una especificada en los requisitos (tornado>=4.2.0,<5.0.0 ) (probado en 2.7.15 y 3.7)
versión apropiada del tornado para ser elegido
$ mkdir tmp1
$ cd tmp1
$ pipenv instalar flor
$ pipenv --soporte
Versión de Pipenv: '2018.7.1'
Ubicación de Pipenv: '/Users/jerzyk/.pyenv/versions/3.7.0/lib/python3.7/site-packages/pipenv'
Ubicación de Python: '/Users/jerzyk/.pyenv/versions/3.7.0/bin/python3.7'
Otras instalaciones de Python en PATH
:
2.7
: /usr/local/bin/python2.7
2.7
: /Users/jerzyk/.pyenv/shims/python2.7
2.7
: /usr/local/bin/python2.7
2.7
: /usr/local/bin/python2.7
2.7
: /usr/bin/python2.7
3.6
: /Users/jerzyk/.pyenv/shims/python3.6
3.7
: /Users/jerzyk/.pyenv/versions/3.7.0/bin/python3.7m
3.7
: /Users/jerzyk/.pyenv/versions/3.7.0/bin/python3.7
3.7
: /Users/jerzyk/.pyenv/shims/python3.7
3.7
: /usr/local/bin/python3.7
3.7
: /usr/local/bin/python3.7
3.7.0
: /Users/jerzyk/.pyenv/versions/3.7.0/bin/python
3.7.0
: /Users/jerzyk/.pyenv/shims/python
2.7.15
: /usr/local/bin/python
2.7.15
: /usr/local/bin/python
2.7.10
: /usr/bin/python
None
: /Users/jerzyk/.pyenv/shims/python2
2.7.15
: /usr/local/bin/python2
2.7.15
: /usr/local/bin/python2
3.7.0
: /Users/jerzyk/.pyenv/versions/3.7.0/bin/python3
3.7.0
: /Users/jerzyk/.pyenv/shims/python3
3.7.0
: /usr/local/bin/python3
3.7.0
: /usr/local/bin/python3
PEP 508 Información:
{'implementation_name': 'cpython',
'implementation_version': '3.7.0',
'os_name': 'posix',
'platform_machine': 'x86_64',
'platform_python_implementation': 'CPython',
'platform_release': '17.7.0',
'platform_system': 'Darwin',
'platform_version': 'Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT '
'2018; root:xnu-4570.71.2~1/RELEASE_X86_64',
'python_full_version': '3.7.0',
'python_version': '3.7',
'sys_platform': 'darwin'}
Variables de entorno del sistema:
TERM_PROGRAM
PYENV_ROOT
TERM
SHELL
TMPDIR
Apple_PubSub_Socket_Render
TERM_PROGRAM_VERSION
TERM_SESSION_ID
PYENV_VERSION
USER
SSH_AUTH_SOCK
PYENV_DIR
__CF_USER_TEXT_ENCODING
PATH
PWD
LANG
PGHOST
ITERM_PROFILE
PYENV_HOOK_PATH
XPC_FLAGS
XPC_SERVICE_NAME
SHLVL
HOME
COLORFGBG
ITERM_SESSION_ID
LOGNAME
PGDATA
DISPLAY
COLORTERM
PYTHONDONTWRITEBYTECODE
PIP_PYTHON_PATH
Variables de entorno específicas de Pipenv:
Variables de entorno específicas de depuración:
PATH
: /Users/jerzyk/.pyenv/versions/3.7.0/bin:/usr/local/Cellar/pyenv/1.2.6/libexec:/Users/jerzyk/.pyenv/shims:/usr/local/bin:/usr/local/sbin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin
SHELL
: /bin/bash
LANG
: en_US.UTF-8
PWD
: /Users/jerzyk/tmp
Contenido de Pipfile
('/Users/jerzyk/tmp/Pipfile'):
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
flower = "*"
[dev-packages]
[requires]
python_version = "3.7"
Contenido de Pipfile.lock
('/Users/jerzyk/tmp/Pipfile.lock'):
{
"_meta": {
"hash": {
"sha256": "e224f38cf9f41ab210a6546986368cfee3a9087dc1c0d756024e2f6aea1f7e9a"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.7"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"amqp": {
"hashes": [
"sha256:073dd02fdd73041bffc913b767866015147b61f2a9bc104daef172fc1a0066eb",
"sha256:eed41946890cd43e8dee44a316b85cf6fee5a1a34bb4a562b660a358eb529e1b"
],
"version": "==2.3.2"
},
"babel": {
"hashes": [
"sha256:6778d85147d5d85345c14a26aada5e478ab04e39b078b0745ee6870c2b5cf669",
"sha256:8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23"
],
"version": "==2.6.0"
},
"billiard": {
"hashes": [
"sha256:ed65448da5877b5558f19d2f7f11f8355ea76b3e63e1c0a6059f47cfae5f1c84"
],
"version": "==3.5.0.4"
},
"celery": {
"hashes": [
"sha256:77dab4677e24dc654d42dfbdfed65fa760455b6bb563a0877ecc35f4cfcfc678",
"sha256:ad7a7411772b80a4d6c64f2f7f723200e39fb66cf614a7fdfab76d345acc7b13"
],
"version": "==4.2.1"
},
"flower": {
"hashes": [
"sha256:a7a828c2dbea7e9cff1c86d63626f0eeb047b1b1e9a0ee5daad30771fb51e6d0"
],
"index": "pypi",
"version": "==0.9.2"
},
"kombu": {
"hashes": [
"sha256:86adec6c60f63124e2082ea8481bbe4ebe04fde8ebed32c177c7f0cd2c1c9082",
"sha256:b274db3a4eacc4789aeb24e1de3e460586db7c4fc8610f7adcc7a3a1709a60af"
],
"version": "==4.2.1"
},
"pytz": {
"hashes": [
"sha256:a061aa0a9e06881eb8b3b2b43f05b9439d6583c206d0a6c340ff72a7b6669053",
"sha256:ffb9ef1de172603304d9d2819af6f5ece76f2e85ec10692a524dd876e72bf277"
],
"version": "==2018.5"
},
"tornado": {
"hashes": [
"sha256:1c0816fc32b7d31b98781bd8ebc7a9726d7dce67407dc353a2e66e697e138448",
"sha256:4f66a2172cb947387193ca4c2c3e19131f1c70fa8be470ddbbd9317fd0801582",
"sha256:5327ba1a6c694e0149e7d9126426b3704b1d9d520852a3e4aa9fc8fe989e4046",
"sha256:6a7e8657618268bb007646b9eae7661d0b57f13efc94faa33cd2588eae5912c9",
"sha256:a9b14804783a1d77c0bd6c66f7a9b1196cbddfbdf8bceb64683c5ae60bd1ec6f",
"sha256:c58757e37c4a3172949c99099d4d5106e4d7b63aa0617f9bb24bfbff712c7866",
"sha256:d8984742ce86c0855cccecd5c6f54a9f7532c983947cff06f3a0e2115b47f85c"
],
"markers": "python_version != '3.2.*' and python_version != '3.1.*' and python_version != '3.3.*' and python_version != '3.0.*' and python_version >= '2.7'",
"version": "==5.1"
},
"vine": {
"hashes": [
"sha256:52116d59bc45392af9fdd3b75ed98ae48a93e822cee21e5fda249105c59a7a72",
"sha256:6849544be74ec3638e84d90bc1cf2e1e9224cc10d96cd4383ec3f69e9bce077b"
],
"version": "==1.1.4"
}
},
"develop": {}
}
```[[fuente]]
url = " https://pypi.org/simple "
verificar_ssl = verdadero
nombre = "pypi"
[paquetes]
flor = "*"
[paquetes de desarrollo]
tornado = "<5"
[requiere]
versión_python = "3.7"
```
Este archivo reproduce el problema. pipenv lock
parece bloquear packages
y dev-packages
en diferentes etapas. Cuando descubre que flower
depende de tornado>=4.2.0
ignora la restricción definida en dev-packages
e instala tornado 5. Ejecutar pipenv lock -d
tampoco ayuda.
Como solución alternativa, tuve que mover todos los requisitos de [paquetes de desarrollo] a [paquetes]. O supongo que podría haber duplicado todas las entradas de [paquetes] en [paquetes de desarrollo].
Perdón por la demora en responderles a todos, para responder al menos una parte de la consulta, dev-packages
pase a segundo plano a packages
para evitar que se desarrolle accidentalmente en un entorno que no reflejará lo que sea. despliegas.
Dado que aquí tiene un paquete de nivel superior que depende de tornado
( flower
), y una restricción estricta sobre qué versión de tornado se puede instalar, es muy probable que desee anclar el entrada de tornado en packages
ya que se está instalando de cualquier manera. Si el pin de la versión es condicional, debería considerar agregar un marcador de entorno .
En términos generales, este Pipfile
dice que usará tornado 5.x
en producción, pero <5
en desarrollo, que es algo en lo que diseñamos (es decir, esta fue una decisión de diseño, a menos que use marcadores de entorno, sus dependencias locales coincidirán con las de producción sin importar qué).
Cerrando por ahora, ya que este problema particular de resolución de dependencia es una decisión de diseño, deberá mover su requisito a la sección packages
y usar marcadores de entorno
Comentario más útil
```[[fuente]]
url = " https://pypi.org/simple "
verificar_ssl = verdadero
nombre = "pypi"
[paquetes]
flor = "*"
[paquetes de desarrollo]
tornado = "<5"
[requiere]
versión_python = "3.7"
```
Este archivo reproduce el problema.
pipenv lock
parece bloquearpackages
ydev-packages
en diferentes etapas. Cuando descubre queflower
depende detornado>=4.2.0
ignora la restricción definida endev-packages
e instala tornado 5. Ejecutarpipenv lock -d
tampoco ayuda.