Pipenv: La dependencia de Git con la rama separada se anula por la dependencia de otro paquete.

Creado en 8 may. 2018  ·  10Comentarios  ·  Fuente: pypa/pipenv

Este problema es similar al # 1779, pero la solución decía que no funciona para mí.

Necesito instalar una versión específica de un paquete PyInstaller , pero PyInstaller también es una dependencia de PyUpdater que también se requiere en mi proyecto y anula otros mis PyInstaller específicos

$ python -m pipenv.help salida:

python -m pipenv.help

C:\Program Files (x86)\Python36-32\python.exe: No module named pipenv.help

Soy consciente de que no es así como debería verse esta salida, pero no puedo hacer que funcione. ¿Alguna ayuda aquí? Estoy en pipenv versión 11.0.2.


Resultado Esperado

Necesito instalar la última rama develop de PyInstaller y no quiero que PyUpdater anule esto con la versión PyInstaller-3.3.1 . Como se sugirió en # 1779, coloqué PyUpdater encima del PyInstaller en [packages] en Pipfile.

Resultado actual

Independientemente de si la parte importante de Pipfile se ve así:

PyUpdater = "*"
PyInstaller = {git = "https://github.com/pyinstaller/pyinstaller", ref = "develop"}

o así:

PyInstaller = {git = "https://github.com/pyinstaller/pyinstaller", ref = "develop"}
PyUpdater = "*"

la versión de PyInstaller en Pipfile.lock será 3.3.1 y termino con esta versión instalada.

Lo interesante es que si desinstalo PyInstaller con pipenv uninstall pyinstaller y luego lo instalo de nuevo con pipenv install https://github.com/pyinstaller/pyinstaller/archive/develop.zip obtengo la versión Successfully installed PyInstaller-3.4.dev0+b31794cf1 pero de hecho la versión 3.3.1 instalada en lugar de.

Pasos para replicar
# Pipfile
[[source]]

url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[packages]
PyUpdater = "*"
PyInstaller = {git = "https://github.com/pyinstaller/pyinstaller", ref = "develop"}

pipenv install
Verificar versión: pipenv run pyinstaller --version

o

Crea un nuevo ambiente limpio
pipenv install pyupdater
pipenv uninstall pyinstaller
pipenv install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
Verificar versión: pipenv run pyinstaller --version

Dependency Resolution Type

Todos 10 comentarios

Confirmado, la resolución aquí es incorrecta.

Ok, entonces: el orden solo importa al bloquear o usar --sequential , y los archivos zip nunca se resolverán correctamente, creo ... puedes intentar usar -e pero no estoy seguro de que esto funcione. La instalación es simultánea, por lo que el orden de los archivos pip no servirá de mucho.

Sin embargo, la dependencia de nivel superior siempre debería ganar, en mi opinión. PyInstaller se especifica en el Pipfile (es decir, de nivel superior), por lo que su información de versión no debe ser anulada por la especificación de dependencia de PyUpdater. Podría ser sensato generar una excepción si no se puede resolver razonablemente, pero no anular silenciosamente.

¿Qué hace en el maestro?

Resuelve PyInstaller a la versión en PyPI, como lo requiere PyUpdater. Esto es lo que tengo en Windows:

{
    "_meta": {
        "hash": {
            "sha256": "c0d9cbadaa9e85bb1b87408b1e0b428414754623d472d64deb2a5bd69ff9bf2c"
        },
        "pipfile-spec": 6,
        "requires": {},
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "altgraph": {
            "hashes": [
                "sha256:49dc134049903cc73fb76ca3cc9bef5b2b8c01c28732dd29594f99af2b449fc5",
                "sha256:fc28b986a68fde8d3ff0e6d6ba3fbdd2cd562d11d45ef7c7735fbd826c9eec2e"
            ],
            "version": "==0.15"
        },
        "appdirs": {
            "hashes": [
                "sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92",
                "sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"
            ],
            "version": "==1.4.3"
        },
        "bsdiff4": {
            "hashes": [
                "sha256:5a022ff4c1d1de87232b1c70bde50afbb98212fd246be4a867d8737173cf1f8f"
            ],
            "version": "==1.1.4"
        },
        "certifi": {
            "hashes": [
                "sha256:13e698f54293db9f89122b0581843a782ad0934a4fe0172d2a980ba77fc61bb7",
                "sha256:9fa520c1bacfb634fa7af20a76bcbd3d5fb390481724c597da32c719a7dca4b0"
            ],
            "version": "==2018.4.16"
        },
        "chardet": {
            "hashes": [
                "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
                "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
            ],
            "version": "==3.0.4"
        },
        "dsdev-utils": {
            "hashes": [
                "sha256:cbe18eb0104b56e19087d60b765d7875b114acce01b1aceca9120f0556ab109d"
            ],
            "version": "==0.9.6"
        },
        "ed25519": {
            "hashes": [
                "sha256:2991b94e1883d1313c956a1e3ced27b8a2fdae23ac40c0d9d0b103d5a70d1d2a"
            ],
            "version": "==1.4"
        },
        "future": {
            "hashes": [
                "sha256:e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb"
            ],
            "version": "==0.16.0"
        },
        "macholib": {
            "hashes": [
                "sha256:7f76a7ef4f58f85889dec25fb532bad5acfd461c444738dfeb2e7bf855d5906b",
                "sha256:9aeec52d7da59912b15445d08b08d95cee48414f01dd035be06f04a825973c08"
            ],
            "version": "==1.9"
        },
        "pbr": {
            "hashes": [
                "sha256:3747c6f017f2dc099986c325239661948f9f5176f6880d9fdef164cb664cd665",
                "sha256:a9c27eb8f0e24e786e544b2dbaedb729c9d8546342b5a6818d8eda098ad4340d"
            ],
            "version": "==4.0.4"
        },
        "pefile": {
            "hashes": [
                "sha256:675c35ee0e1677db9e80d2f48d8a7ff2cf38e6207e8cd5e2a2c6d126db025854"
            ],
            "version": "==2017.11.5"
        },
        "pyinstaller": {
            "hashes": [
                "sha256:715f81f24b1ef0e5fe3b3c71e7540551838e46e9de30882aa7c0a521147fd1ce"
            ],
            "version": "==3.3.1"
        },
        "pypiwin32": {
            "hashes": [
                "sha256:67adf399debc1d5d14dffc1ab5acacb800da569754fafdc576b2a039485aa775",
                "sha256:71be40c1fbd28594214ecaecb58e7aa8b708eabfa0125c8a109ebd51edbd776a"
            ],
            "version": "==223"
        },
        "pyupdater": {
            "hashes": [
                "sha256:61e796063131bcde4e2467580c0add3a2e77cd0b0533a1b559f066e4c127570e"
            ],
            "index": "pypi",
            "version": "==2.5.3"
        },
        "pywin32": {
            "hashes": [
                "sha256:0df9b008caef10af0d674c483316c28dcf78391332d9d5d380fab667ebf2d7d1",
                "sha256:249391eb924b8376826e6f84d143d1dcc0e400b238b511d5fbd3811f6ed9ad50",
                "sha256:42f48567e36b787901ff3da20de5a134cd9880cc90832e2aad60951f058699f0",
                "sha256:9eff897796c9d76a213134257a01b6f8a122c55e0772847fba313a8091f3ec44",
                "sha256:c7ea0deabcc324e5b74084b5452003109c592d1aedbe9e9289ed55b26d9b0c7f",
                "sha256:da422d4067d98b49fbb19d851900a5fc38c61eab0ee803574c27c42309173ebe",
                "sha256:f0f0e7c82ee334dd6e888b9b5beb05fd8947355fa7a15644c810bb4ea0079ca6",
                "sha256:fb3c85907918fd01a72ee146d323d220771dee151c0cfa5630c2f35797ffb116"
            ],
            "version": "==223"
        },
        "six": {
            "hashes": [
                "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
                "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
            ],
            "version": "==1.11.0"
        },
        "stevedore": {
            "hashes": [
                "sha256:e3d96b2c4e882ec0c1ff95eaebf7b575a779fd0ccb4c741b9832bed410d58b3d",
                "sha256:f1c7518e7b160336040fee272174f1f7b29a46febb3632502a8f2055f973d60b"
            ],
            "version": "==1.28.0"
        },
        "urllib3": {
            "hashes": [
                "sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b",
                "sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f"
            ],
            "version": "==1.22"
        }
    },
    "develop": {}
}

@uranusjr pruébalo contra la rama con la

Lo mismo con la corrección de errores / 2260: / ( pipenv lock --clear )

Solo estoy notando que esto no se está instalando en modo editable; no admitimos la resolución de dependencia para cosas que no están en modo editable porque no tenemos visibilidad en el gráfico de dependencia

¡Ah, creo que sé por qué está pasando esto!

Hola. Ayer mencioné esto en Slack. Creo que ese es el error que encontré.

Los paquetes Pipfile ven así:

[packages]
foo = "*"
bar = {git = "https://github.com/bar/bar", ref = "bar"}

Al principio, todo se bloqueó como se esperaba con los paquetes bar provenientes de github. Después de ejecutar pipenv update bar se actualizó y agregó foo como dependencia. Posteriormente, al bloquear, foo se resolvió en la versión PyPI.

Agregar editable= True parece haber resuelto el problema

¿Fue útil esta página
0 / 5 - 0 calificaciones