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.
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.
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.
# 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
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