Pipenv: Ketergantungan default terakhir ditandai sebagai lokal dan dapat diedit

Dibuat pada 1 Okt 2020  ·  9Komentar  ·  Sumber: pypa/pipenv

Lihat dokumentasi diagnosis untuk masalah umum. Saya menguraikan alur kerja saya (mungkin cacat) dalam langkah-langkah untuk mereproduksi di bawah ini. Saya telah mempermasalahkan hal ini selama beberapa minggu untuk menyalahkan diri sendiri, dan ingin ini menjadi kesalahan saya.

Deskripsi masalah

Paket eksternal terakhir yang tercantum di bagian default Pipfile.lock salah ditandai sebagai lokal dan dapat diedit

Hasil yang diharapkan

Paket eksternal terakhir yang terdaftar masih disediakan dari pypi

Hasil sebenarnya

Pipfile.lock saya mendapatkan diff ini termasuk di dalamnya, yang merusak CI dan pengguna lain karena alasan yang jelas:

             "version": "==1.25.10"
         },
         "wrapt": {
-            "hashes": [
-                "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
-            ],
-            "version": "==1.12.1"
+            "editable": true,
+            "path": "."
         }
     },
     "develop": {

Langkah-langkah untuk mereplikasi

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]
flake8 = "3.8.3"
pytest = "5.4.3"
pytest-cov = "2.10.0"
termcolor = "1.1.0"

[packages]
mycli = {editable = true, path = "."}

[requires]
python_version = "3.7"

(mycli memiliki setup.py untuk memfasilitasi pembuatan entrypoint untuk klik python dan mendefinisikan dependensi non-dev)

Proyek ini adalah utilitas CLI dan kami mengkloning repositori dan menginstal melalui:
PIPENV_IGNORE_VIRTUALENVS=1 PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy

Sebagai pengembang yang menambahkan ketergantungan baru, saya mengedit setup.py dan menjalankan:
pipenv lock

Ini menghasilkan file Pipfile.lock yang menyertakan dependensi baru saya, tetapi juga dependensi default terakhir yang cacat (Saya memiliki masalah dengan beberapa paket yang mendekati akhir alfabet dalam posisi itu, khususnya wrapt dan zipp )

Saya dapat mengatasi masalah ini dan menghasilkan Pipfile.lock yang benar dengan:
rm -rf Pipfile.lock .venv
dan
pipenv lock


Saya sengaja menghilangkan keluaran pipenv --support karena aplikasi yang saya kerjakan adalah milik dan saya khawatir tentang kebocoran detail lingkungan kita (atau tim keamanan kita berteriak pada saya: tertawa :). Jika ada potongan tertentu yang dapat saya gosok dan berikan, saya akan senang hati melakukannya, hanya tidak ingin menggosok semuanya di depan.

Terima kasih telah membaca dan sekali lagi, semoga saya menjadi bodoh.
Terima kasih!

Type Vendored Dependencies

Komentar yang paling membantu

Seperti yang dikomentari oleh @patelamol , saya mengalami masalah serupa dengan beberapa paket saya dalam kasus ini

       "zipp": {
            "editable": true,
            "path": "."
        },

Solusi saya adalah mengedit kunci pipfile secara manual, yang tidak aman / tidak sehat ke versi terbaru

"zipp": {
            "hashes": [
                "sha256:43f4fa8d8bb313e65d8323a3952ef8756bf40f9a5c3ea7334be23ee4ec8278b6",
                "sha256:b52f22895f4cfce194bc8172f3819ee8de7540aa6d873535a8668b730b8b411f"
            ],
            "version": "==3.2.0"
        }

Saya ingin tahu apakah ada pembaruan pipenv segera keluar dengan perbaikan bug ini

Semua 9 komentar

@patelamol dan saya dapat mereproduksi ini dengan pipenv 2020.08.13.

Saya mengalami bug ini di semua versi terbaru hingga 2018.11.26 . Jadi 2018.11.26 tidak memiliki masalah ini.

Seperti yang dikomentari oleh @patelamol , saya mengalami masalah serupa dengan beberapa paket saya dalam kasus ini

       "zipp": {
            "editable": true,
            "path": "."
        },

Solusi saya adalah mengedit kunci pipfile secara manual, yang tidak aman / tidak sehat ke versi terbaru

"zipp": {
            "hashes": [
                "sha256:43f4fa8d8bb313e65d8323a3952ef8756bf40f9a5c3ea7334be23ee4ec8278b6",
                "sha256:b52f22895f4cfce194bc8172f3819ee8de7540aa6d873535a8668b730b8b411f"
            ],
            "version": "==3.2.0"
        }

Saya ingin tahu apakah ada pembaruan pipenv segera keluar dengan perbaikan bug ini

@gregflynn @patelamol Jadi, apakah masalah ini ada di cabang master? Saya tidak dapat mereproduksi dengan langkah-langkah yang diberikan

@gregflynn @patelamol Jadi, apakah masalah ini ada di cabang master? Saya tidak dapat mereproduksi dengan langkah-langkah yang diberikan

Pasti! Saya belum pernah menjalankan pipenv dari github sebelumnya dan tidak melihat petunjuk di README jadi saya akan menjelaskan langkah-langkahnya:

  1. git dikloning
  2. pyenv virtualenv 3.7.9 pipenv && pyenv local pipenv && pip install -e .
  3. verifikasi:
    ``
    $ pipenv --version
    pipenv, versi 2020.8.13
$ ~/.pyenv/versions/pipenv/bin/pipenv --version 
pipenv, version 2020.8.13.dev0
```

  1. membuat venv baru dengan 2020.8.13
  2. menambahkan stockquotes == 2.0.0 ke my setup.py
  3. berlari ~/.pyenv/versions/pipenv/bin/pipenv lock
  4. Tidak ada dadu, melihat kesalahan dengan
         "wrapt": {
-            "hashes": [
-                "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
-            ],
-            "version": "==1.12.1"
+            "editable": true,
+            "path": "."
         }
     },

@frostming terima kasih atas sarannya dan lihat, senang melakukan lebih banyak pengujian atau perbaiki tes ini jika saya tersesat.

@gambrul

  1. membuat venv baru dengan 2020.8.13

Apakah langkah ini penting untuk mereproduksi bug? Saya membuat dengan master Pipenv dan tidak dapat mereproduksi. Gambar buruh pelabuhan akan sangat membantu jika memungkinkan

@gambrul

  1. membuat venv baru dengan 2020.8.13

Apakah langkah ini penting untuk mereproduksi bug? Saya membuat dengan master Pipenv dan tidak dapat mereproduksi. Gambar buruh pelabuhan akan sangat membantu jika memungkinkan

Baik mata tapi saya membuat perubahan berikut dan masih bisa mereproduksi dengan versi master terbaru. Untuk langkah 4 saya memperbarui skrip instalasi saya:

-PIPENV_IGNORE_VIRTUALENVS=1 PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy
+PIPENV_IGNORE_VIRTUALENVS=1 PIPENV_VENV_IN_PROJECT=1 $HOME/.pyenv/versions/pipenv/bin/pipenv install --deploy

dan masih mendapat:

         "wrapt": {
-            "hashes": [
-                "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
-            ],
-            "version": "==1.12.1"
+            "editable": true,
+            "path": "."
         }
     },

Senang mencoba lebih banyak hal! Terima kasih

Oh, saya berhasil memperbanyaknya! Saya tidak melihat faktor kritisnya adalah VENV_IN_PROJECT.

Oh, saya berhasil memperbanyaknya! Saya tidak melihat faktor kritisnya adalah VENV_IN_PROJECT.

: raise_hands: kabar baik! maaf saya lupa memberi Anda Dockerfile, melewatkan catatan itu di pembacaan pertama saya

Apakah halaman ini membantu?
0 / 5 - 0 peringkat