Pipenv: Ketergantungan Git dengan cabang yang terpisah akan diganti dengan ketergantungan dari paket lain.

Dibuat pada 8 Mei 2018  ·  10Komentar  ·  Sumber: pypa/pipenv

Masalah ini mirip dengan # 1779, tetapi solusi yang dinyatakan tidak berfungsi untuk saya.

Saya perlu menginstal versi tertentu dari paket PyInstaller , tetapi PyInstaller juga merupakan ketergantungan PyUpdater yang juga diperlukan dalam proyek saya dan menimpa paket PyInstaller versi.

$ python -m pipenv.help keluaran:

python -m pipenv.help

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

Saya sadar ini bukanlah tampilan yang seharusnya, tetapi saya tidak dapat membuatnya berfungsi. Ada bantuan di sini? Saya menggunakan pipenv versi 11.0.2.


Hasil yang diharapkan

Saya perlu develop cabang terbaru dari PyInstaller terinstal dan saya tidak ingin PyUpdater menimpa ini dengan versi PyInstaller-3.3.1 . Seperti yang disarankan di # 1779 saya menempatkan PyUpdater di atas PyInstaller di [packages] di Pipfile.

Hasil sebenarnya

Terlepas dari apakah bagian penting dari Pipfile terlihat seperti ini:

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

atau seperti ini:

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

versi PyInstaller di Pipfile.lock akan menjadi 3.3.1 dan saya akhirnya menginstal versi ini.

Yang menarik adalah jika saya menghapus PyInstaller dengan pipenv uninstall pyinstaller dan kemudian menginstalnya lagi dengan pipenv install https://github.com/pyinstaller/pyinstaller/archive/develop.zip saya mendapatkan Successfully installed PyInstaller-3.4.dev0+b31794cf1 tetapi pada kenyataannya versi 3.3.1 terpasang sebagai gantinya.

Langkah-langkah untuk mereplikasi
# 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
Periksa versi: pipenv run pyinstaller --version

atau

Ciptakan lingkungan baru yang bersih
pipenv install pyupdater
pipenv uninstall pyinstaller
pipenv install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
Periksa versi: pipenv run pyinstaller --version

Dependency Resolution Type

Semua 10 komentar

Dikonfirmasi, resolusi salah di sini.

Ok jadi: pesan hanya penting saat mengunci atau menggunakan --sequential , dan zipfiles tidak akan pernah terselesaikan dengan baik Saya pikir ... Anda dapat mencoba menggunakan -e tetapi saya tidak yakin ini berhasil. Pemasangannya serentak sehingga pesanan pipfile tidak akan berbuat banyak.

Ketergantungan tingkat atas harus selalu menang, bagaimanapun, IMO. PyInstaller ditentukan dalam Pipfile (yaitu tingkat atas), jadi informasi versinya tidak boleh diganti oleh spesifikasi ketergantungan PyUpdater. Mungkin masuk akal untuk mengajukan pengecualian jika tidak dapat diselesaikan secara wajar, tetapi tidak menimpanya secara diam-diam.

Apa yang dilakukannya pada master

Ini menyelesaikan PyInstaller ke versi di PyPI, seperti yang disyaratkan oleh PyUpdater. Inilah yang saya dapatkan di 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 mencobanya terhadap cabang dengan persyaratan yang diperbarui

Sama dengan perbaikan bug / 2260: / ( pipenv lock --clear )

Saya hanya memperhatikan bahwa ini tidak dipasang dalam mode yang dapat diedit - kami tidak mendukung resolusi ketergantungan untuk hal-hal yang tidak dalam mode dapat diedit karena kami tidak memiliki visibilitas ke dalam grafik ketergantungan

Ah, saya rasa saya tahu mengapa ini terjadi!

Halo. Saya menyebutkan ini saat kendur kemarin. Saya yakin itulah bug yang saya temui.

Paket Pipfile terlihat seperti ini:

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

Pada awalnya semuanya mengunci seperti yang diharapkan dengan paket bar berasal dari github. Setelah menjalankan pipenv update bar diperbarui dan ditambahkan foo sebagai ketergantungan. Setelah itu saat mengunci, foo diselesaikan ke versi PyPI.

Menambahkan editable= True tampaknya telah menyelesaikan masalah

Apakah halaman ini membantu?
0 / 5 - 0 peringkat