Saya ingin menginstal Scipy (sudah memiliki Numpy diinstal). Saya memiliki Python 3.5.1-3 diinstal dengan OS dan IDLE3 (3.5.2). Ketika saya menekan terminal
sudo pip3 install scipy
Mencetak
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
Saya sudah mencoba menginstal ulang pip3 dan restart OS, tetapi tidak berubah. Apakah pip3 bekerja aneh dengan orang lain?
Gunakan
python -m pip install
sebagai gantipip install
Contoh:
Saya mulai mendapatkan masalah ini setelah
pip
peningkatan:The
pip
(resp.pip3
) Executable disediakan oleh distro Anda (python-pip
paket pada Ubuntu 16.04).Oleh karena itu, ini tidak selalu diperbarui dengan
pip
paket itu sendiri saat Anda meningkatkan pip, dan mungkin rusak.Jika Anda hanya menggunakan
python -m pip
secara langsung, misalnya dalam:ia melewati jalur Python Anda dan menemukan versi terbaru dari pip, dan mengeksekusi file itu.
Itu bergantung pada fakta bahwa file itu dapat dieksekusi, tetapi itu adalah tipe antarmuka yang sangat standar, dan karena itu lebih kecil kemungkinannya untuk rusak daripada skrip Debian yang lebih rumit.
Maka saya sarankan menambahkan alias berikut ke
.bashrc
:File Ubuntu 18.04
/usr/bin/pip3
tidak:dan mungkin
main
telah dihapus daripip
beberapa titik yang merupakan hal yang merusak.Commit pemecah pip tampaknya: 95bcf8c5f6394298035a7332c441868f3b0169f4 "Pindahkan semua API internal ke pip._internal" yang masuk ke pip 18.0.
Diuji di Ubuntu 16.04 setelah pembaruan dari
pip3
9.0.1 ke 18.0.Pyenv
Namun pada akhirnya, untuk pengembangan Python yang serius, saya hanya menyarankan Anda menginstal Python lokal Anda sendiri dengan pyenv + virtualenv, yang juga dapat mengatasi bug Ubuntu ini: Bagaimana cara menginstal versi Python yang berbeda menggunakan apt-get?
sumber
/usr/bin/pip
disediakan oleh paket Ubuntu Python, danpip
tidak menimpanya. Tetapipip update
dikelola denganpip
sendirinya, dan menghindari menyentuh file Ubuntu.Debian
--The komentar mengatakan:Run the main entry point, similarly to how setuptools does it, but because we didn't install the actual entry point from setup.py, don't use the pkg_resources API.
Mungkin ada cara untuk menginstal Python dengan benar dalam cara python./usr/bin/pip
:-)Bug ditemukan di pip 10.0.0.
Di linux Anda perlu memodifikasi file: / usr / bin / pip dari:
untuk ini:
sumber
pip
tim.Saya memiliki masalah yang sama, tetapi menghapus dan menginstal ulang dengan apt dan pip tidak bekerja untuk saya.
Saya melihat solusi lain yang menyajikan cara mudah untuk memulihkan jalur pip3:
sumber
Walaupun karel mungkin telah memecahkan masalah "install numpy and scipy" Anda, apa yang salah dengan pip pada sistem Anda belum diatasi, jadi Anda mungkin akan memiliki lebih banyak masalah dengan pip yang akan datang.
Mencari di sini , tampaknya menjadi masalah terakhir yang cukup umum dengan pip 10 pada sistem Ubuntu. Anda mungkin menemukan beberapa masalah di utas yang sesuai untuk Anda, tetapi mudah-mudahan pembaruan akan segera memperbaikinya.
sumber
Menginstal pip dari apt dan pip itu sendiri dapat menyebabkan hal ini.
Dalam kasus saya, saya menggunakan paket pip Ubuntu untuk menginstal pipenv yang kemudian menginstal salinan pip yang lebih baru. Sekarang karena shell saya menjalankan skrip pip 9 Ubuntu (untuk memverifikasi run
which pip3
) dan juru bahasa Python saya kemudian mengimpor modul pip 10, perintah pip3 gagal. Jadi saya ingin menghapus salah satu dari keduanya.Adil untuk menganggap Anda memiliki pip baru karena suatu alasan. Dalam hal ini Anda ingin mencopot pemasangan pip lama seperti:
sudo apt remove python3-pip
Jika Anda tahu pasti bahwa Anda setuju dengan pip lama dan lebih memilih paket sistem, Anda ingin menghapus yang lebih baru:
~/.local/bin/pip3 uninstall pip
atau gagal itu
sudo /usr/local/bin/pip3 uninstall pip
sumber
Tipe
Ini harus menghapus kesalahan ini
sumber
Memasang ulang paksa pip berfungsi dengan baik untuk sebagian besar pengguna seperti yang ditunjukkan pada halaman github ini :
sumber
Masalah saya akhirnya menjadi ketidakcocokan antara python3.6 dan 3.7. Instalasi python3.6 menempatkan tautan
/usr/bin/python3 -> /usr/bin/python3.6
meskipun sistem telah ditingkatkan ke python3.7.sumber
Ini bekerja untuk saya:
Oleh
install --upgrade
, maksud saya apa pun Anda mencoba untuk menginstal.sumber