Este problema é semelhante ao # 1779, mas a solução indicada não está funcionando para mim.
Preciso instalar uma versão específica de um pacote PyInstaller
, mas PyInstaller
também é uma dependência de PyUpdater
que também é necessária em meu projeto e substitui outros meus PyInstaller
version.
Saída de
$ python -m pipenv.help
:
python -m pipenv.help
C:\Program Files (x86)\Python36-32\python.exe: No module named pipenv.help
Estou ciente de que essa saída não deve ser assim, mas não consigo fazer com que funcione. Alguma ajuda aqui? Estou no pipenv versão 11.0.2.
Preciso do último develop
branch do PyInstaller instalado e não quero que o PyUpdater substitua isso pela versão PyInstaller-3.3.1
. Como sugerido em # 1779, coloquei PyUpdater acima do PyInstaller em [packages]
no Pipfile.
Independentemente de a parte importante do Pipfile ser assim:
PyUpdater = "*"
PyInstaller = {git = "https://github.com/pyinstaller/pyinstaller", ref = "develop"}
ou assim:
PyInstaller = {git = "https://github.com/pyinstaller/pyinstaller", ref = "develop"}
PyUpdater = "*"
a versão do PyInstaller em Pipfile.lock será 3.3.1
e acabo com esta versão instalada.
O que é interessante é que se eu desinstalar o PyInstaller com pipenv uninstall pyinstaller
e, em seguida, instalá-lo novamente com pipenv install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
, obtenho o Successfully installed PyInstaller-3.4.dev0+b31794cf1
mas na verdade a versão 3.3.1
instalada em vez 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
Verifique a versão: pipenv run pyinstaller --version
ou
Crie um novo ambiente limpo
pipenv install pyupdater
pipenv uninstall pyinstaller
pipenv install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
Verifique a versão: pipenv run pyinstaller --version
Confirmado, a resolução está errada aqui.
Ok, então: o pedido só importa ao bloquear ou usar --sequential
, e zipfiles nunca serão resolvidos corretamente, eu acho ... você pode tentar usar -e
mas não tenho certeza se isso funciona. A instalação é simultânea, portanto a ordem do pipfile não fará muito.
Dependência de nível superior sempre deve vencer, no entanto, IMO. PyInstaller é especificado no Pipfile (ou seja, nível superior), portanto, suas informações de versão não devem ser substituídas pela especificação de dependência de PyUpdater. Pode ser sensato levantar uma exceção se ela não puder resolver razoavelmente, mas não anular silenciosamente.
O que isso faz no mestre
Ele resolve o PyInstaller para a versão no PyPI, conforme exigido pelo PyUpdater. Aqui está o que tenho no 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 tente contra o branch com o requirementslib atualizado
O mesmo com bugfix / 2260: / ( pipenv lock --clear
)
Estou apenas percebendo que isso não está sendo instalado no modo editável - não oferecemos suporte à resolução de dependência para coisas que não estão no modo editável porque não temos visibilidade no gráfico de dependência
Ah, acho que sei porque isso está acontecendo!
Olá. Eu mencionei isso ontem. Acredito que seja esse o bug que encontrei.
Os pacotes de Pipfile
aparência:
[packages]
foo = "*"
bar = {git = "https://github.com/bar/bar", ref = "bar"}
No início, tudo estava travando conforme o esperado com os pacotes bar
vindos do github. Depois de executar um pipenv update
bar
foi atualizado e adicionou foo
como uma dependência. Posteriormente, ao travar, foo
foi resolvido para a versão PyPI.
Adicionar editable= True
parece ter resolvido o problema