Pip: ImportError: tidak dapat mengimpor nama 'SourceDistribution' dari 'pip._internal.distributions.source'

Dibuat pada 15 Okt 2019  ·  101Komentar  ·  Sumber: pypa/pip

Lingkungan

CircleCI menggunakan Conda, misalnya https://circleci.com/gh/peterjc/thapbi-pict/1073

  • versi pip: pip-19.2.3 (dari conda) diperbarui ke 19.3 (via pip install --upgrade pip setuptools )
  • Versi python: python-3.7.3
  • OS: Linux

Saya hanya membuat sedikit perubahan pada kode saya, tetapi hari ini build CircleCI rusak selama tahap build/install alat Python saya - beberapa cabang terpengaruh. Waktunya sesuai dengan rilis pip 19.3 di PyPI.

Keterangan

Tampaknya rilis pip baru-baru ini memindahkan beberapa file internal, tebakan saya adalah #6830.

Perilaku yang diharapkan

Cara Mereproduksi

Output penuh pada https://circleci.com/gh/peterjc/thapbi-pict/1073 yang sedang berjalan https://github.com/peterjc/thapbi-pict/blob/9fcec2da60e6e6ae5cf7ee6ad4b53dcc3a40cfe7/.circleci/config.yml#L56

...
python setup.py sdist --formats=gztar
python setup.py bdist_wheel
pip install dist/thapbi_pict-*.whl

Keluaran

Traceback (most recent call last):
  File "/opt/conda/bin/pip", line 7, in <module>
    from pip._internal import main
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/__init__.py", line 40, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", line 11, in <module>
    from pip._internal.commands import (
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 9, in <module>
    from pip._internal.commands.download import DownloadCommand
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/commands/download.py", line 10, in <module>
    from pip._internal.operations.prepare import RequirementPreparer
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 9, in <module>
    from pip._internal.distributions import (
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
    from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/opt/conda/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
Exited with code 1
auto-locked support

Komentar yang paling membantu

Terima kasih @PabloCastellano! Saya hanya mengabaikan komentar di sini sekarang, karena saya tidak ingin detak jantung saya naik lebih tinggi. :)

Membuat rilis perbaikan bug. Jika itu membantu, gunakan 👍 pada posting ini. Jika tidak, silakan tulis komentar dengan pesan kesalahan.

Semua 101 komentar

Akan sangat membantu untuk mengetahui apa dalam pengaturan CircleCI (atau conda?) yang menggunakan API internal tersebut - reorganisasi seharusnya tidak memengaruhi kode eksternal apa pun. Masalah utama yang kita ketahui sejauh ini adalah reorganisasi utama, yang berdampak pada skrip pembungkus, tetapi yang ini terlihat sedikit berbeda. Setiap wawasan yang dapat Anda berikan akan sangat berguna, terima kasih.

Dikonfirmasi bahwa menghapus pip install --upgrade pip setuptools memperbaiki hal-hal,

https://github.com/peterjc/thapbi-pict/commit/4060404c1034a676439aef1369260022577a6627
https://circleci.com/gh/peterjc/thapbi-pict/1074

yaitu Ada yang rusak dalam cara saya memperbarui dari pip 19.2.3 ke 19.3

Saya tidak sengaja menggunakan Python yang disediakan CircleCI, melainkan Python yang disediakan Conda - apakah ada nilai dalam beralih dari pip ... ke python -m pip ... hanya untuk menghilangkan kemungkinan ini karena mencampur Python?

Bekerja di cabang sekarang, menambahkan sedikit lebih banyak logging dan dikembalikan ke versi yang rusak:

https://circleci.com/gh/peterjc/thapbi-pict/1076

Ini mengonfirmasi bahwa traceback dipicu oleh pip install dist/thapbi_pict-*.whl (karakter pengganti untuk mencocokkan satu roda yang baru dibuat).

Untuk apa nilainya, saya baru saja mengkonfirmasi bahwa from pip._internal import main berfungsi pada peningkatan pip yang sederhana (di Windows, jadi bukan perbandingan yang bagus, tapi bagaimanapun ...). Jadi saya curiga ada sesuatu yang tidak cocok di lingkungan Anda, meskipun saya tidak dapat melihat dari traceback apa itu.

CircleCI memiliki kemampuan untuk menjalankan kembali pekerjaan dengan akses SSH ke VM (bukan karena saya pernah menggunakannya), jadi secara teori ini dapat digunakan untuk debugging, tetapi saya tidak tahu harus mulai dari mana.

Saya memiliki pekerjaan untuk saat ini, dan pada titik tertentu conda-forge akan memiliki paket pip 19.3 juga, jadi kecuali orang lain melihat pengecualian yang sama, tampaknya prioritas rendah?

OK keren. Jika Anda memiliki solusi maka saya baik-baik saja meninggalkannya di sana untuk saat ini. Jika orang lain menambahkan komentar yang melaporkan itu terjadi di tempat lain, kami dapat melakukan penggalian lebih lanjut - mungkin mereka akan memiliki informasi tambahan yang akan membantu.

Saya menghadapi masalah serupa di macOS, python: 3.6.9. perintah pip di terminal saya tidak berfungsi lagi. Ada saran?

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

Ini membantu untuk saat ini

Saya memiliki masalah yang sama di CircleCI sejak 1 jam yang lalu.
Perubahan versi gambar buruh pelabuhan dari python:3.7 ke python:3.7.4 memperbaiki masalah ini. (hanya solusi). seperti ini:

version: 2
...
jobs:
  build:
    docker:
      - image: python:3.7.4
...

Apakah ada di antara kalian yang menggunakan caching? Saya pikir mungkin beberapa internal pip berubah dan ketika Anda mengembalikan cache dari versi python lama, pip break. Sarankan Anda membatalkan cache CI lingkaran Anda dengan mengubah keys dan lihat apa yang terjadi ... (berhasil untuk saya!)

Seperti yang disarankan oleh @bgkelly membersihkan cache juga berhasil untuk saya!

Ya - sama untuk saya - mengubah kunci cache telah memecahkan masalah ini untuk proyek tim kami di circleci. Terima kasih @bgkelly

Mengubah kunci cache tidak menyelesaikannya untuk saya.
Menambahkan komentar di requirements.txt berhasil, tapi itu bukan solusi yang diinginkan.

Baiklah, jadi ini sepertinya masalah caching untuk CircleCI.

Bisakah seseorang menghubungi orang-orang CircleCI (melalui saluran dukungan mereka)? Akan sangat bagus jika mereka bisa melihat ini dan mungkin berpadu di sini.

Hai orang,

Saya benar-benar tidak tahu apakah ini membantu Anda dengan cara apa pun, tetapi saya mendapat Pesan Kesalahan yang sama pada pengaturan MSYS saya mencoba menginstal WeasyPrint.

Setelah menghapus instalan python3-pip dan python3-setuptools saya menghapus semua folder pip di /usr/lib/python3.7/site-packages/ dan menginstal ulang keduanya .. memecahkan kesalahan spesifik itu.

pacman -R python3-pip python3-setuptools
rm -R /usr/lib/python3.7/site-packages/pip
rm -R /usr/lib/python3.7/site-packages/pip-19.3.1.dist-info
pacman -S python3-pip python3-setuptools

Agar adil, saya sekarang mengalami masalah kompiler ... tapi mungkin saya bisa membantu ....

Untuk berjaga-jaga jika ini dapat membantu, saya menemukan kesalahan dalam konteks yang berbeda: saat menyalin lingkungan virtual dari satu gambar buruh pelabuhan ke gambar lainnya, dalam pengaturan multitahap.

Gambar sumber berisi versi pip sedangkan gambar target berisi versi pip yang ditingkatkan. Setelah menyalin direktori lingkungan virtual gambar sumber ke gambar target, ada 2 direktori berbeda ( pip-<version>.dist-info ) di bawah lingkungan virtual site-packages dan pip tidak berfungsi, memberikan kesalahan yang sama seperti yang dilaporkan dalam masalah ini.

Saya tidak menghabiskan waktu untuk memecahkan masalah ini karena saya agak skeptis terhadap pendekatan ini yang melibatkan penyalinan lingkungan virtual ke lingkungan di mana sudah ada paket yang diinstal.

Bagaimanapun, ini tampaknya menjadi masalah tabrakan paket.

Semoga ini membantu! :senyum:

Hai
Saya yakin kami melihat masalah yang sama di server ReadTheDocs internal kami. Ini menjalankan perintah berikut saat membuat dokumen:

var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/bin/python -m pip install --upgrade --cache-dir /var/lib/readthedocs/repo/user_builds/some_doc/.cache/pip pip

Jika saya menghapus cache build melalui antarmuka GUI ReadTheDocs, build berhasil - tetapi hanya sampai build berikutnya dimulai.

Berikut log lengkapnya:

Traceback (most recent call last):
  File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/__main__.py", line 16, in <module>
    from pip._internal import main as _main  # isort:skip # noqa
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/__init__.py", line 40, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/cli/main_parser.py", line 11, in <module>
    from pip._internal.commands import (
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/commands/__init__.py", line 9, in <module>
    from pip._internal.commands.download import DownloadCommand
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/commands/download.py", line 10, in <module>
    from pip._internal.operations.prepare import RequirementPreparer
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 9, in <module>
    from pip._internal.distributions import (
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
    from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution'

Hai,

Saya juga mengalami masalah.

OS: Debian GNU/Linux 10 (Linux 4.19.0-6-amd64)
pip: 19.3.1
konda: 4.7.12
Python:3.7.4

$pip
Traceback (panggilan terakhir terakhir):
File "/home/jiang/anaconda3/bin/pip", baris 7, di
dari pip._internal impor utama
File "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/__init__.py", baris 40, di
dari pip._internal.cli.autocompletion impor pelengkapan otomatis
File "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", baris 8, di
dari pip._internal.cli.main_parser impor create_main_parser
File "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", baris 11, di
dari pip._internal.commands impor (
File "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", baris 9, di
dari pip._internal.commands.download impor DownloadCommand
File "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/commands/download.py", baris 10, di
dari pip._internal.operations.prepare import RequirementPreparer
File "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", baris 9, di
dari impor pip._internal.distributions (
File "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", baris 1, di
dari pip._internal.distributions.source impor SourceDistribution
ImportError: tidak dapat mengimpor nama 'SourceDistribution' dari 'pip._internal.distributions.source' (/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)

Kami dapat melakukan penyelesaian di server ReadTheDocs lokal kami dengan mengubah alur build untuk secara khusus menggunakan pip versi 19.2.3. Sekarang ReadTheDocs menjalankan perintah build berikut - dan kami tidak lagi memiliki masalah caching:

/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/bin/python -m pip install --upgrade --cache-dir /var/lib/readthedocs/repo/user_builds/some_doc/.cache/pip pip==19.2.3

Lebih khusus lagi, kami memperbarui file python_environment.py lokal untuk menggunakan versi pip tertentu: https://github.com/readthedocs/readthedocs.org/blob/7212d6ff738b24a10fb0f4227d3fbdf69e5cab42/readthedocs/doc_builder/python_environments.py#L322

cmd = pip_install_cmd + ['pip']

diubah menjadi:

cmd = pip_install_cmd + ['pip==19.2.3']

Saya tahu pengaturan saya mungkin berbeda dari kebanyakan tetapi masalah di pihak saya adalah karena direktori PIP sources/ di lingkungan virtual (kemungkinan besar masalah caching PIP atau sesuatu). Mari saya jelaskan:
Saat menghapus direktori user_builds/project/envs/ untuk sebuah proyek dan membangunnya kembali berfungsi tetapi hanya sampai Anda membangun kembali dengan direktori envs/ hadir lagi. Saya menghabiskan banyak waktu untuk men-debug apa masalahnya dan ternyata itu adalah direktori user_builds/project/envs/ (atau sesuatu di dalamnya) yang menyebabkan masalah. Jadi saya melakukan lebih banyak pengujian untuk mengetahui bahwa itu adalah direktori user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/source/ secara khusus menyebabkan masalah. Saya menghapus direktori user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/source/ , membangun kembali, dan semuanya baik-baik saja. Saya membangun kembali dan gagal. Saya memeriksa direktori user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/ lagi dan melihat bahwa source/ ada. Jadi saya pergi ke instalasi Python global saya dan memindahkan direktori /path/to/lib/python3.6/dist-packages/pip/_internal/distributions/source/ dari PIP, menghapus direktori user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/source/ dari lingkungan proyek, dan membangun kembali. Ini berhasil dibuat dan tidak menyalin folder source/ , sempurna. Jadi sekarang setiap kali dokumen dibuat, mereka membangun tanpa kesalahan. Saya harap ini membantu orang lain.

Bersulang.

Coba ini:

1.curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
2.python get-pip.py

@Guru36

Mencoba itu berkali-kali tanpa hasil. Anda harus melakukan ini di awal, jadi ini tidak akan membantu. Terima kasih.

Bersulang.

Coba ini:

1.curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
2.python get-pip.py

Terima kasih

Saya sekarang mendapatkan masalah dengan ini pada rilis 0,20.

Melihat ke dalam ini sekarang orang-orang. Jika seseorang dapat memberikan instruksi tentang cara mereproduksi dengan pip 20.0, itu bagus!

Saya mengalami masalah yang sama:

virtualenv venv
. venv/bin/activate
pip install sqlalchemy pymysql

hasil menjadi

Traceback (most recent call last):
  File "/tmp/test/venv/bin/pip", line 11, in <module>
    sys.exit(main())
  File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/cli/main.py", line 73, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
    module = importlib.import_module(module_path)
  File "/tmp/test/venv/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 24, in <module>
    from pip._internal.cli.req_command import RequirementCommand
  File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
    from pip._internal.operations.prepare import RequirementPreparer
  File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
    from pip._internal.distributions import (
  File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
    from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/distributions/source/__init__.py)

Jika seseorang dapat memberikan instruksi tentang cara mereproduksi dengan pip 20.0,

Singkatnya, "coba gunakan pip"! Hasil mencoba menginstal scipy pada env virtual yang berfungsi, yang sudah menginstal scipy (yaitu saya berharap pip tidak melakukan apa-apa):

(farmcat3) [danielevans@rml-dev06 farmcat]$ pip install pip==20.0
Looking in indexes: https://pypi.org/simple, http://phabricator.jbarisk.com:8080
Collecting pip==20.0
  Downloading https://files.pythonhosted.org/packages/60/65/16487a7c4e0f95bb3fc89c2e377be331fd496b7a9b08fd3077de7f3ae2cf/pip-20.0-py2.py3-none-any.whl (1.5MB)
     |████████████████████████████████| 1.5MB 1.7MB/s
Installing collected packages: pip
  Found existing installation: pip 19.3.1
    Uninstalling pip-19.3.1:
      Successfully uninstalled pip-19.3.1
pipSuccessfully installed pip-20.0

(farmcat3) [danielevans@rml-dev06 farmcat]$ pip install scipy
Traceback (most recent call last):
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/bin/pip", line 8, in <module>
    sys.exit(main())
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/cli/main.py", line 73, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
    module = importlib.import_module(module_path)
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib64/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 24, in <module>
    from pip._internal.cli.req_command import RequirementCommand
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
    from pip._internal.operations.prepare import RequirementPreparer
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
    from pip._internal.distributions import (
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
    from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution'

Trik curl get-pip.py tidak berhasil untuk saya, tetapi saya memecahkan mencari perbedaan antara venv saya dan "kode resmi" yang diinstal dari segi sistem. (Saya di sebuah cluster, _so hic sunt leones_...)

--- /usr/lib/python2.7/site-packages/pip/_internal/distributions/__init__.py 28-10-2019 08:47:20.727522000 +0100
+++ /home/dummyuser/ml/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py 21-01-2020 12:55:48.000.000000 +0100
@@ -1,4 +1,4 @@
-dari pip._internal.distributions.source.legacy import SourceDistribution
+dari pip._internal.distributions.source impor SourceDistribution
dari pip._internal.distributions.wheel import WheelDistribution
dari pip._internal.utils.typing impor MYPY_CHECK_RUNNING

Pindah ke python -m pip membantu dalam situasi saya. Dari https://github.com/ome/jenkins-library-recursivemerge/pull/4/files

Gagal:

    (cd build && curl -sfL ${buildInfraUrl} | tar -zxf -)
    virtualenv build/venv && build/venv/bin/pip install ${sccPackage}

Pass:

    python -m venv build/venv
    . build/venv/bin/activate
    python -m pip install ${sccPackage}

@pradyunsg , pada Fedora 29 saya dapat mereproduksi seperti ini:

rm -rf ~/.local/lib/python3.7
sudo dnf install python3-pip
pip3.7 install -U --user pip
python3.7 -m pip install requests

```
Traceback (panggilan terakhir terakhir):
File "/usr/lib64/python3.7/runpy.py", baris 193, di _run_module_as_main
"__main__", mod_spec)
File "/usr/lib64/python3.7/runpy.py", baris 85, di _run_code
exec(kode, run_globals)
File "/home/kaiant/.local/lib/python3.7/site-packages/pip/__main__.py", baris 19, di
sys.keluar(_main())
File "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/cli/main.py", baris 73, di main
perintah = create_command(cmd_name, terisolasi=("--terisolasi" di cmd_args))
File "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", baris 96, di create_command
modul = importlib.import_module(module_path)
File "/usr/lib64/python3.7/importlib/__init__.py", baris 127, di import_module
kembalikan _bootstrap._gcd_import(nama[level:], paket, level)
berkas "", baris 1006, di _gcd_import
berkas "", baris 983, di _find_and_load
berkas "", baris 967, di _find_and_load_unlocked
berkas "", baris 677, di _load_unlocked
berkas "", baris 728, di exec_module
berkas "", baris 219, di _call_with_frames_removed
File "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/commands/install.py", baris 24, di
dari pip._internal.cli.req_command import RequirementCommand
File "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", baris 20, di
dari pip._internal.operations.prepare import RequirementPreparer
File "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", baris 16, di
dari impor pip._internal.distributions (
File "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", baris 1, di
dari pip._internal.distributions.source impor SourceDistribution
ImportError: tidak dapat mengimpor nama 'SourceDistribution' dari 'pip._internal.distributions.source' (/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)


Saya baru saja mendapatkan ini ketika penyebaran pip saya ditingkatkan secara otomatis dari 19.3.1 ke 20.0

Semuanya sudah menggunakan python -m pip - bukan itu masalahnya di sini

Saya dapat memberi tahu Anda bahwa perbaikan dari JediKev, yaitu menghapus folder ini:

paket-situs/pip/_internal/distribusi/sumber

memperbaiki masalah

Konteks Python Docker biasa menggunakan wadah python:3.7-slim (berbasis Debian) juga terpengaruh:

[32;1m$ docker build --compress -t $REGISTRY_IMAGE_SPARROW .[0;m
#2 [internal] load .dockerignore
#2 transferring context: 493B done
#2 DONE 0.0s

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 1.22kB done
#1 DONE 0.0s

#3 [internal] load metadata for docker.io/library/python:3.7-slim
#3 DONE 0.8s

#4 [base 1/6] FROM docker.io/library/python:3.7-slim<strong i="7">@sha256</strong>:5886bc9424f2edc...
#4 DONE 0.0s

#5 [internal] load build context
#5 transferring context: 531.72kB 0.0s done
#5 DONE 0.0s

#10 [base 6/6] RUN pip install --upgrade pip
#10 CACHED

#8 [base 4/6] RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards co...
#8 CACHED

#9 [base 5/6] WORKDIR /app
#9 CACHED

#6 [base 2/6] COPY docker-entrypoint.sh /usr/local/bin/
#6 CACHED

#7 [base 3/6] RUN chmod +x /usr/local/bin/docker-entrypoint.sh
#7 CACHED

#11 [requirements 1/2] COPY requirements.txt requirements.txt
#11 CACHED

#12 [requirements 2/2] RUN pip install --no-cache-dir -r requirements.txt
#12 0.912 Traceback (most recent call last):
#12 0.912   File "/usr/local/bin/pip", line 8, in <module>
#12 0.912     sys.exit(main())
#12 0.912   File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/main.py", line 73, in main
#12 0.912     command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
#12 0.912   File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
#12 0.912     module = importlib.import_module(module_path)
#12 0.912   File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
#12 0.912     return _bootstrap._gcd_import(name[level:], package, level)
#12 0.912   File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
#12 0.912   File "<frozen importlib._bootstrap>", line 983, in _find_and_load
#12 0.912   File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
#12 0.912   File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
#12 0.913   File "<frozen importlib._bootstrap_external>", line 728, in exec_module
#12 0.913   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
#12 0.913   File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 24, in <module>
#12 0.913     from pip._internal.cli.req_command import RequirementCommand
#12 0.913   File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
#12 0.913     from pip._internal.operations.prepare import RequirementPreparer
#12 0.913   File "/usr/local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
#12 0.913     from pip._internal.distributions import (
#12 0.913   File "/usr/local/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
#12 0.913     from pip._internal.distributions.source import SourceDistribution
#12 0.913 ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/usr/local/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
#12 ERROR: executor failed running [/bin/sh -c pip install --no-cache-dir -r requirements.txt]: runc did not terminate sucessfully
------
 > [requirements 2/2] RUN pip install --no-cache-dir -r requirements.txt:
------
failed to solve with frontend dockerfile.v0: failed to build LLB: executor failed running [/bin/sh -c pip install --no-cache-dir -r requirements.txt]: runc did not terminate sucessfully

Mendapat hal yang sama di python:3.7.6-alpine berjalan di tindakan github

Saya dapat mereproduksi kesalahan ini dalam Dockerfile :

FROM python:3.7

COPY requirements.txt .

RUN pip install --upgrade pip
RUN pip install -r requirements.txt

CMD pip --version

Dan di requirements.txst :


Ketika saya membuat gambar ini, saya mendapatkan kesalahan buruk ini. Jika saya menghapus baris yang meningkatkan pip, gambar akan dibuat.

Oke, saya telah mereproduksi ini secara lokal -- Saya akan segera mengajukan PR dengan perbaikan.

Menghapus folder ./site-packages/pip/_internal/distributions/source membantu!

Ya, pip versi 20.0 rusak

Ya, memiliki masalah yang sama di sini (pip 20.0).

Yap, pip 20.0 break , menggunakan "virtualenv ." perintah untuk membuat venv

Sama di sini, semua build CI kami yang pip pembaruannya gagal.

Semua build rusak karena kesalahan yang sama di pihak kami juga.

Bangunan rusak

Bagaimana jika saya memutar kembali ke pip 19.x? Apakah itu akan berhasil?

EDIT:
pip install --upgrade "pip==19.3.1" masih berfungsi.

Sama di sini dengan python 3.7.3 dan pip 20.0

pip install pip"<20.0" solusi temp tetapi berhasil.

mungkinkah membuat virtualenv seting pip versio ke 19.3.1 (sebelumnya)

Perbaikan cepat yang berhasil adalah

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pypython get-pip.py pip==9.0.2

Menyimpan pipa CI kami

Baca Dokumen juga terganggu oleh masalah ini sekarang, membuat pembuatan dokumen selalu gagal
373AED13-5DF1-4729-9923-114F83603B44

mungkinkah membuat virtualenv seting pip versio ke 19.3.1 (sebelumnya)

@manutero , --no-download dari perintah virtualenv akan menghindari mencoba mengunduh versi terbaru pip pada saat membuat lingkungan.

Jika Anda menggunakan virtualenv, turunkan saja ke 19.x. Ini menyelesaikan masalah di virtualenv saya:

virtualenv --no-pip <ENV NAME>
# activate the virtual environment
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip==19.2.2

Harus memilih versi sebelumnya untuk memilah,
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip=19.3.1

Sama di sini dengan python 3.7.6 dan pip 20.0

pip versi-20.0
versi python - 3.6
Cukup tulis baris di bawah ini dalam file
/lib/python3.6/site-packages/pip/_internal/distributions/source/__init__.py

dari .legacy import SourceDistribution

Bisakah orang lain yang melihat kegagalan ini mengonfirmasi bahwa ada sumber/ folder di pip/_internal/distribusi?

Jika Anda dapat mengonfirmasi bahwa folder itu ada, jangan berkomentar di sini -- gunakan reaksi 👍 di postingan ini. Folder itu tidak ada, gunakan reaksi .

masalah yang sama di sini dengan ubuntu 19.04

Successfully installed pip-20.0
Traceback (most recent call last):
  File "/home/pippo/.venvs/test_pgm/bin/pip", line 10, in <module>
    sys.exit(main())
  File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/cli/main.py", line 73, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
    module = importlib.import_module(module_path)
  File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 24, in <module>
    from pip._internal.cli.req_command import RequirementCommand
  File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
    from pip._internal.operations.prepare import RequirementPreparer
  File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
    from pip._internal.distributions import (
  File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
    from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)

Itu tidak muncul dengan pip==19.2.3 jadi untuk saat ini saya mengembalikannya

Tolong berhenti melaporkan "saya juga". @pradyunsg sedang memperbaikinya sekarang

Ya. memukul ini sekarang berhasil kemarin.

cuplikan untuk pengguna pipenv

wget https://bootstrap.pypa.io/get-pip.py -O get-pip.py
pipenv run python get-pip.py pip==19.3

Untuk perbaikan cepat,

$(which easy_install) pip==19.3

juga berfungsi dengan baik

Untuk perbaikan cepat,

$(which easy_install) pip==19.3

juga berfungsi dengan baik

Di antara semua solusi sementara, hanya yang ini yang berhasil untuk saya

Saya ingin tahu apa yang akan terjadi ketika mereka menghapus easy_install... :) - Bagaimana kita akan memperbaiki masalah pip?

Mengganti pip install --upgrade pip dengan pip install --upgrade pip"<20.0" bekerja di sini.

Harus memilih versi sebelumnya untuk memilah,
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip=19.3.1

Seharusnya python3 get-pip.py pip==19.3.1

Mengganti pip install --upgrade pip dengan pip install --upgrade pip"<20.0" bekerja di sini.

Bantu saya di buruh pelabuhan
JALANKAN pip install --upgrade pip"<20.0"

Terima kasih @PabloCastellano! Saya hanya mengabaikan komentar di sini sekarang, karena saya tidak ingin detak jantung saya naik lebih tinggi. :)

Membuat rilis perbaikan bug. Jika itu membantu, gunakan 👍 pada posting ini. Jika tidak, silakan tulis komentar dengan pesan kesalahan.

XD

Saya tidak ingin detak jantung saya naik lebih tinggi. :)
Membuat rilis perbaikan bug.

@pradyunsg Anda baru saja menurunkan milik saya. Tampaknya bekerja.

@SergeyLadutko :

Mengganti pip install --upgrade pip dengan pip install --upgrade pip"<20.0" bekerja di sini.

Bantu saya di buruh pelabuhan
JALANKAN pip install --upgrade pip"<20.0"

coba pip install --upgrade pip==19.3.1

ok biarkan saya menjalankan build saya lagi

@pradyunsg Angkat topi untuk perbaikan cepat, kami sangat menghargainya <3 Saya dapat mengonfirmasi bahwa perbaikan ini telah diterapkan dalam pekerjaan CircleCI, bagi siapa pun yang bertanya-tanya.

Perhatikan bahwa get-pip.py belum diperbarui -- itu karena, yah, saya menggunakan lingkungan dev saya sendiri untuk get-pip saat menguji ini. :)

Saya akan memperbaruinya dalam beberapa menit ke depan.

Bisa konfirmasi. pip==20.0.1 berfungsi dengan baik

@pradyunsg ada perbaikan CI agar tidak terjadi lagi di masa depan? Wadah buruh pelabuhan sudah cukup. Apakah Anda akan menerima PR untuk ini?

Perhatikan bahwa get-pip.py belum diperbarui -- itu karena, yah, saya menggunakan lingkungan dev saya sendiri untuk get-pip saat menguji ini. :)

Saya akan memperbaruinya dalam beberapa menit ke depan.

:) beri tahu kami kapan ini akan berjalan dengan baik

Saya akan memperbaruinya dalam beberapa menit ke depan.

Baiklah, dorong ini sekarang. Perubahan seharusnya sudah disebarkan ke bootstrap.pypa.io sekarang. Atau itu akan benar-benar segera.

Build kami sekarang lulus dengan get-pip.py terima kasih @pradyunsg

pip 20.0.1 bekerja dengan baik. Terima kasih @pradyunsg

Saya dapat mengonfirmasi, pip diinstal sekarang yang tidak lagi mengalami kesalahan ini. Terima kasih @pradyunsg !

Terima kasih @pradyunsg !!

terima kasih @pradyunsg ! sangat

terima kasih @pradyunsg untuk perbaikan cepatnya! 🎉.

Terima kasih @pradyunsg untuk perputaran cepat!

Saya pikir, masalahnya dibuat karena ada direktori modul source serta source.py di jalur pip/_internal/distributions dan itu mengacaukan impor

Di pip/_internal/distributions/__init__.py memiliki baris impor:

from pip._internal.distributions.source import SourceDistribution # <-- here
from pip._internal.distributions.wheel import WheelDistribution
from pip._internal.utils.typing import MYPY_CHECK_RUNNING

Tapi ada juga dir source dengan __init__.py di dalamnya,

  env  ~/.../_internal/distributions  ls -ltr
total 32
-rw-r--r-- 1 user xxx 1294 Jan 21 18:02 wheel.py
-rw-r--r-- 1 user xxx  760 Jan 21 18:02 installed.py
-rw-r--r-- 1 user xxx 1425 Jan 21 18:02 base.py
drwxr-xr-x 3 user xxx 4096 Jan 21 18:02 source
-rw-r--r-- 1 user xxx 4201 Jan 21 18:19 source.py
-rw-r--r-- 1 user xxx  961 Jan 21 18:26 __init__.py
drwxr-xr-x 2 user xxx 4096 Jan 21 18:26 __pycache__

Karenanya impor itu akan gagal. Mengganti nama source.py menjadi _source.py dan mengubah impor di __init__.py menjadi from pip._internal.distributions._source import SourceDistribution tampaknya memperbaikinya

@pradyunsg Angkat topi untuk perbaikan cepat, kami sangat menghargainya <3

Setuju, perubahan haluan yang fantastis untuk perbaikan di sini!

Terima kasih @pradyunsg

Kesalahan yang sama seperti di atas.
Versi python: python-3.7.6
OS: Windows

Bekerja setelah pindah ke PIP 19.3.1

Bekerja dengan baik sekarang, terima kasih.

Mempertimbangkan sifat bug ini, dapatkah Anda menghapus rilis 20.0 dari PYPA? https://pypi.org/project/pip/#history

Pertanyaan lain akan apa yang bisa kita lakukan untuk menghindari regresi serupa di masa depan.

Maaf semuanya atas kerusakannya, dan terima kasih telah bekerja sama dengan kami di sini untuk memperbaiki kerusakan ini!

@xavfernandez mengetahui mengapa ini terjadi dan kami akan membuat perubahan pada proses rilis kami untuk mencegah kegagalan serupa di masa mendatang: #7624

kerja bagus, terima kasih untuk perputaran cepat kilat!

Halo, saya terjebak di 20.0
Semua perintah yang saya coba mengembalikan kesalahan ini tentang 'SourceDistribution'.

pip install --upgrade pip
pip install pip "<20.0"
pip install --upgrade "pip==19.3.1"

Saya lelah untuk menghapus juga:

pip uninstall pip
python -m pip uninstall pip setuptools

Adakah yang punya solusi lain untuk menghapus pip?

Ubuntu 18.04.3 LTS
Python 3.6.9
jalankan di virtualenv

Hai @CharrierCoop! Anda seharusnya dapat mengunduh get-pip.py dan menginstal pip 20.0.1 menggunakan itu.

Lihat https://pip.pypa.io/en/stable/installing/

Sempurna !!
terima kasih @pradyunsg

dapatkah Anda menghapus rilis 20.0 dari PYPA?

Tidak. Kami tidak akan menghapusnya. Kami memiliki fitur yang didukung standar untuk "mencabut" rilis yang rusak. Setelah PyPI menambahkan dukungan untuk itu, kami akan mencabut rilis ini (jika ada yang peduli saat itu).

Lihat https://www.python.org/dev/peps/pep-0592/#motivation untuk detail selengkapnya.

sudo python get-pip.py pip==19.3.1"
perbaiki masalah ini

sudo python get-pip.py pip==19.3.1"
perbaiki masalah ini

Terima kasih banyak

sudo python get-pip.py pip==19.3.1"
perbaiki masalah ini

Tidak perlu masalah ini diperbaiki oleh @pradyunsg

Hai @CharrierCoop! Anda seharusnya dapat mengunduh get-pip.py dan menginstal pip 20.0.1 menggunakan itu.

Lihat https://pip.pypa.io/en/stable/installing/

Saya mencoba melakukan hal yang sama pada Raspberry Pi 4 (Python 3.7.3, versi pip - 20.0 dan OS - Raspbian Buster Lite), tetapi tidak berhasil.
KESALAHAN: Tidak dapat menemukan versi yang memenuhi persyaratan pi p
KESALAHAN: Tidak ditemukan distribusi yang cocok untuk pip

Ada solusi?

@ Gilf641 Silakan ajukan masalah baru -- ini akan lebih mudah dikelola oleh pengelola.

Saya akan melanjutkan dan menutup masalah ini sekarang, karena sepertinya semuanya berfungsi untuk sebagian besar pengguna.

Jika Anda masih menghadapi masalah, harap cari duplikat yang diajukan sebelumnya (sejak 21 Jan, untuk pip 20.0) dan jika tidak ada, ajukan masalah baru.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat