Ce problème est similaire à # 1779, mais la solution indiquée ne fonctionne pas pour moi.
J'ai besoin d'installer une version spécifique d'un package PyInstaller
, mais PyInstaller
est également une dépendance de PyUpdater
qui est également requise dans mon projet et remplace les autres PyInstaller
spécifiques
$ python -m pipenv.help
sortie:
python -m pipenv.help
C:\Program Files (x86)\Python36-32\python.exe: No module named pipenv.help
Je suis conscient que ce n'est pas à quoi devrait ressembler ce résultat, mais je ne peux pas le faire fonctionner. Une aide ici? Je suis sur la version 11.0.2 de pipenv.
J'ai besoin de la dernière branche develop
de PyInstaller installée et je ne veux pas que PyUpdater remplace cela avec la version PyInstaller-3.3.1
. Comme suggéré dans # 1779, j'ai placé PyUpdater au-dessus de PyInstaller dans [packages]
dans Pipfile.
Peu importe si la partie importante de Pipfile ressemble à ceci:
PyUpdater = "*"
PyInstaller = {git = "https://github.com/pyinstaller/pyinstaller", ref = "develop"}
ou comme ça:
PyInstaller = {git = "https://github.com/pyinstaller/pyinstaller", ref = "develop"}
PyUpdater = "*"
la version PyInstaller dans Pipfile.lock sera 3.3.1
et je me retrouve avec cette version installée.
Ce qui est intéressant, c'est que si je désinstalle PyInstaller avec pipenv uninstall pyinstaller
et que je l'installe à nouveau avec pipenv install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
j'obtiens la version Successfully installed PyInstaller-3.4.dev0+b31794cf1
mais en fait la version 3.3.1
est installée au lieu.
# 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
Vérifier la version: pipenv run pyinstaller --version
ou
Créer un nouvel environnement propre
pipenv install pyupdater
pipenv uninstall pyinstaller
pipenv install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
Vérifier la version: pipenv run pyinstaller --version
Confirmé, la résolution est erronée ici.
Ok donc: l'ordre n'a d'importance que lors du verrouillage ou de l'utilisation de --sequential
, et les fichiers zip ne seront jamais résolus correctement, je pense ... vous pouvez essayer d'utiliser -e
mais je ne suis pas sûr que cela fonctionne. L'installation est simultanée, donc l'ordre des fichiers pip ne fera pas grand chose.
La dépendance au plus haut niveau devrait toujours gagner, cependant, l'OMI. PyInstaller est spécifié dans le Pipfile (c'est-à-dire au niveau supérieur), donc ses informations de version ne doivent pas être remplacées par la spécification de dépendance de PyUpdater. Il peut être judicieux de soulever une exception si elle ne peut pas raisonnablement être résolue, mais pas de la neutraliser silencieusement.
Que fait-il sur le maître
Il résout PyInstaller à la version sur PyPI, comme requis par PyUpdater. Voici ce que j'ai sous 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 essayez-le avec la branche avec le
La même chose avec bugfix / 2260: / ( pipenv lock --clear
)
Je remarque juste que cela n'est pas installé en mode modifiable - nous ne prenons pas en charge la résolution des dépendances pour les éléments qui ne sont pas en mode modifiable car nous n'avons pas de visibilité sur le graphique de dépendances
Ah, je pense que je sais pourquoi cela se produit!
Bonjour. J'en ai parlé hier sur Slack. Je crois que c'est le bug que j'ai rencontré.
Les packages Pipfile
ressemblent à ceci:
[packages]
foo = "*"
bar = {git = "https://github.com/bar/bar", ref = "bar"}
Au début, tout se bloquait comme prévu avec les paquets bar
provenant de github. Après avoir exécuté un pipenv update
bar
été mis à jour et ajouté foo
tant que dépendance. Ensuite, lors du verrouillage, foo
été résolu vers la version PyPI.
L'ajout de editable= True
semble avoir résolu le problème