Saya menggunakan aplikasi Django ke server dev dan saya mengenai kesalahan ini ketika saya menjalankan pip install -r requirements.txt
:
Traceback (most recent call last):
File "/var/www/mydir/virtualenvs/dev/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
pkg_resources
tampaknya didistribusikan bersama setuptools
. Awalnya saya pikir ini mungkin tidak diinstal ke Python di virtualenv, jadi saya menginstal setuptools 2.6
(versi yang sama dengan Python) ke paket situs Python di virtualenv dengan perintah berikut:
sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages
EDIT: Ini hanya terjadi di dalam virtualenv. Jika saya membuka konsol di luar virtualenv maka pkg_resources
ada, tetapi saya masih mendapatkan kesalahan yang sama.
Ada ide mengapa pkg_resources
tidak ada di jalan?
python
django
virtualenv
setuptools
pip
aliran ignite
sumber
sumber
pip uninstall -y setuptools
dan kemudianpip install setuptools==39.1.0
bekerja untuk saya di Anaconda pada Windows 10.Jawaban:
Pembaruan Juli 2018
Kebanyakan orang sekarang harus menggunakan
pip install setuptools
(mungkin dengansudo
).Beberapa mungkin perlu (re) menginstal
python-setuptools
paket melalui manajer paket mereka (apt-get install
,yum install
, dll).Masalah ini bisa sangat tergantung pada OS Anda dan lingkungan pengembang. Lihat warisan / jawaban lain di bawah ini jika jawaban di atas tidak sesuai untuk Anda.
Penjelasan
Pesan kesalahan ini disebabkan oleh
setuptools
paket Python yang hilang / rusak . Per komentar Matt M. dan setuptools mengeluarkan # 581 , skrip bootstrap yang dirujuk di bawah ini bukan lagi metode instalasi yang disarankan.Petunjuk skrip bootstrap akan tetap di bawah, jika itu masih bermanfaat bagi siapa pun.
Jawaban Warisan
Saya mengalami hal yang sama
ImportError
hari ini ketika mencoba menggunakan pip. Entah bagaimanasetuptools
paket itu telah dihapus di lingkungan Python saya.Untuk memperbaiki masalah ini, jalankan skrip pengaturan untuk
setuptools
:(atau jika Anda belum
wget
menginstal (mis. OS X), cobamungkin dengan
sudo
diawali.)Jika Anda memiliki versi apa pun
distribute
, atau versi disetuptools
bawah 0,6, Anda harus mencopotnya terlebih dahulu. *Lihat Petunjuk Instalasi untuk perincian lebih lanjut.
* Jika Anda sudah memiliki pekerjaan
distribute
, memutakhirkannya ke "pembungkus kompatibilitas" yang membuat Anda lebihsetuptools
mudah. Tetapi jika semuanya sudah rusak, jangan coba-coba.sumber
sudo python
YMMV.easy_install pip
pip lagi. Masalah saya muncul dari Cygwin memutakhirkan Python dari 2,6 ke 2,7 di belakang saya saat menginstal sesuatu yang tidak terkait.distribute
sudah usang, dansetuptools
merupakan penggantinya. Saya akan mengedit jawaban untuk memperbaruinya, tetapi saya tidak yakin itu cara terbaik untuk mengatasinya, sehingga seseorang dapat mengembalikan hasil edit, dalam hal ini: Buka di sini .sudo
, seperti yang dicatat oleh @Nik di atas?memperbaikinya untuk saya di Debian. Sepertinya menghapus beberapa paket deb. (Memutar dalam kasus saya) telah melanggar jalur python digunakan untuk menemukan paket
sumber
Saya telah melihat kesalahan ini ketika mencoba menginstal rhodecode ke virtualenv di ubuntu 13.10. Bagi saya solusinya adalah menjalankan
sebelum saya menjalankan easy_install rhodecode.
sumber
pip install --upgrade setuptools
sendirian melakukan trik untuk saya.pip install --upgrade setuptools --user
pip install --upgrade setuptools
karena kesalahan yang sama:No module named pkg_resources
pip install --upgrade distribute
melakukan pekerjaan ketika menggunakan modul venv Python 3. Virtualenv Python 2 mendukung--distribute
flag, tetapi kita harus menginstaldistribute
pada lingkungan yang diciptakan olehvenv
.Itu juga terjadi pada saya. Saya pikir masalah akan terjadi jika requirement.txt berisi entri "bagikan" sementara virtualenv menggunakan setuptools. Pip akan mencoba untuk menambal alat setup untuk memberikan ruang untuk distribusi, tetapi sayangnya itu akan gagal setengah jalan.
Solusi mudahnya adalah menghapus virtualenv Anda saat ini kemudian buat virtualenv baru dengan argumen --distribute.
Contoh jika menggunakan virtualenvwrapper:
sumber
pip install -U distribute
setelah mengaktifkan lingkungan akan melakukan pekerjaan.Di CentOS 6 menginstal paket python-setuptools memperbaikinya.
sumber
sudo apt-get install python3-setuptools
sudo yum reinstall python-setuptools
memperbaikinya.Saya memiliki kesalahan ini sebelumnya dan jawaban dengan nilai tertinggi memberi saya kesalahan saat mencoba mengunduh
ez_setup.py
file. Saya menemukan sumber lain sehingga Anda dapat menjalankan perintah:Saya menemukan bahwa saya juga harus menggunakannya
sudo
untuk membuatnya bekerja, jadi Anda mungkin perlu menjalankan:Saya juga membuat lokasi lain tempat skrip dapat diunduh:
https://gist.github.com/ajtrichards/42e73562a89edb1039f3
sumber
curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python
Setelah mencoba beberapa jawaban ini, kemudian menjangkau seorang kolega, apa yang berhasil bagi saya di Ubuntu 16.04 adalah:
Dalam kasus saya, itu hanya versi lama bantal 3.1.1 yang mengalami masalah (bantal 4.x berfungsi dengan baik), dan itu sekarang telah diselesaikan!
sumber
Membutuhkan sedikit lebih banyak sudo. Kemudian gunakan easy_install untuk menginstal pip. Bekerja
sumber
sudo
seharusnya tidak diperlukan dalam virtualenvSaya memperbaiki kesalahan dengan virtualenv dengan melakukan ini:
Salinan pkg_resources.py dari
/Library/Python/2.7/site-packages/setuptools
untuk
/Library/Python/2.7/site-packages/
Ini mungkin solusi yang murah, tapi itu berhasil untuk saya.
.
Jika alat pengaturan tidak ada, Anda dapat mencoba menginstal paket sistem-situs dengan mengetik
virtualenv --system-site-packages /DESTINATION DIRECTORY
, mengubah bagian terakhir menjadi direktori yang ingin Anda instal.pkg_rousources.py
akan berada di bawah direktori itu di lib / python2.7 / situs-paketsumber
Bagi saya, kesalahan ini disebabkan karena saya mempunyai subdirektori bernama "situs"! Saya tidak tahu apakah ini bug pip atau tidak, tetapi saya mulai dengan:
/some/dir/requirements.txt / some / dir / situs /
pip install -r requirement.txt tidak akan berfungsi, beri saya kesalahan di atas!
mengganti nama subfolder dari "situs" menjadi "src" memperbaiki masalahnya! Mungkin pip mencari "paket-situs"? Gila.
sumber
Saya memiliki masalah ini ketika saya telah mengaktifkan virtualenv saya sebagai pengguna yang berbeda dari yang membuatnya. Tampaknya menjadi masalah izin. Saya menemukan ini ketika saya mencoba jawabannya oleh @cwc dan melihat ini di output:
Beralih kembali ke pengguna yang membuat virtualenv, kemudian menjalankan
pip install
perintah asli berjalan tanpa masalah. Semoga ini membantu!sumber
Saya punya masalah ini hari ini juga. Saya hanya punya masalah di dalam virtual env.
Solusi bagi saya adalah menonaktifkan env virtual, menghapus dan kemudian mencopot virtualenv dengan pip dan menginstalnya kembali. Setelah itu saya membuat virtual env baru untuk proyek saya, lalu pip bekerja dengan baik di dalam lingkungan virtual seperti di lingkungan normal.
sumber
Sepertinya mereka telah pindah dari bitbucket dan sekarang ada di github ( https://github.com/pypa/setuptools )
Perintah untuk menjalankan adalah:
sumber
Bagi saya, itu ternyata masalah izin
site-packages
. Karena ini hanya lingkungan dev saya, saya menaikkan izin dan semuanya berfungsi lagi:sumber
Jika Anda menghadapi masalah ini dengan aplikasi yang diinstal melalui conda , solusinya (sebagaimana dinyatakan dalam laporan bug ini) adalah dengan menginstal alat-setup dengan:
sumber
Di Windows, dengan python 3.7, ini bekerja untuk saya:
--user
menginstal paket di direktori home Anda, yang tidak memerlukan hak admin.sumber
resolusi sederhana adalah bahwa Anda dapat menggunakan conda untuk meningkatkan setuptools atau seluruh lingkungan. (Khusus untuk pengguna windows.)
jika setuptools dihapus, Anda perlu menginstal setuptools lagi.
jika semua metode ini tidak berfungsi, Anda dapat memutakhirkan conda environment. Tapi saya tidak menyarankan Anda perlu menginstal ulang dan menghapus beberapa paket karena setelah itu akan memperburuk situasi.
sumber
Tampaknya Anda kehilangan alat setup. Beberapa versi virtualenv menggunakan distribusi alih-alih pengaturantools secara default. Gunakan
--setuptools
opsi saat membuat virtualenv atau aturVIRTUALENV_SETUPTOOLS=1
di lingkungan Anda.sumber
Dalam kasus saya, saya memiliki 2 versi python yang diinstal pada awalnya dan kemudian saya menghapus yang lebih lama. Jadi sambil menciptakan lingkungan virtual
mengacu pada python yang dihapus
Apa yang berhasil untuk saya
Hal yang sama berlaku ketika Anda mencoba menggunakan pip.
sumber
Saya menemukan jawaban ini ketika saya mencoba mengikuti panduan ini untuk OSX . Apa yang berhasil untuk saya adalah, setelah berlari
python get-pip
, saya juga harus JUGAeasy_install pip
. Itu memperbaiki masalah tidak bisa menjalankan pip sama sekali. Saya memang memiliki banyak barang macport lama yang diinstal. Itu mungkin bertentangan.sumber
Di windows, saya menginstal pip yang diunduh dari www.lfd.uci.edu/~gohlke/pythonlibs/ lalu mengatasi masalah ini.
Jadi saya harus menginstal setuptools (easy_install) terlebih dahulu.
sumber
instal ulang
setuptools
dengan:maka semuanya akan baik-baik saja.
sumber
Saya menggunakan CentOS 6.7, dan python saya baru saja mengupgrade dari 2.6.6 ke 2.7.11, setelah mencoba begitu banyak jawaban yang berbeda, akhirnya yang berikut berfungsi:
Semoga membantu seseorang dalam situasi yang sama.
sumber
Tidak ada jawaban yang diposting bekerja untuk saya, jadi saya instal ulang pip dan berhasil!
(referensi: http://www.saltycrane.com/blog/2010/02/how-install-pip-ubuntu/ )
sumber
Saya mengalami masalah ini setelah memperbarui pembangunan Ubuntu saya. Tampaknya telah melalui dan menghapus alat pengaturan di semua lingkungan virtual saya.
Untuk memperbaiki ini saya menginstal ulang lingkungan virtual kembali ke direktori target. Ini membersihkan alat pengaturan yang hilang dan membuat semuanya berjalan kembali.
misalnya:
sumber
Bagi saya perbaikan yang baik adalah menggunakan
--no-download
opsi ke virtualenv (VIRTUALENV_NO_DOWNLOAD=1 tox
untuk tox.)sumber
Pada Opensuse 42.1 berikut ini memperbaiki masalah ini:
sumber
ImportError: Tidak ada modul bernama pkg_resources: solusinya adalah menginstal ulang python pip menggunakan Perintah berikut di bawah.
Langkah: 1 Masuk di pengguna root.
Langkah: 2 Hapus paket python-pip jika ada.
Langkah: 3 Unduh file menggunakan perintah wget (Unduhan file dalam
pwd
)Langkah: 4 Jalankan file python.
Langkah: 5 Finalis perintah instalasi exicute.
Catatan: Pengguna harus root.
sumber
Saya mengalami kesalahan itu di lingkungan Google App Engine saya. Dan
pip install -t lib setuptools
memperbaiki masalah ini.sumber
Jika Anda menggunakan Python 3, Anda harus menggunakan pip3 bukan pip. Perintahnya seperti
$ pip3 install requirements.txt
sumber