Setelah menginstal mekanik , saya sepertinya tidak dapat mengimpornya.
Saya telah mencoba menginstal dari pip, easy_install, dan via python setup.py install
dari repo ini: https://github.com/abielr/mechanize . Semua ini tidak berhasil, karena setiap kali saya memasukkan interaktif Python, saya mendapatkan:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mechanize
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named mechanize
>>>
Instalasi yang saya jalankan sebelumnya melaporkan bahwa mereka telah selesai dengan sukses, jadi saya berharap impor bekerja. Apa yang bisa menyebabkan kesalahan ini?
easy_install
? Juga, silahkan konfirmasi path lengkap darieasy_install
,pip
, danpython
.sys.path
untuk melihat apakah Anda mencari di tempat yang tepat,ls -laR /usr/local/lib/python2.7/dist-packages/mech*
untuk memeriksa masalah izin, dan melihatimp.find_module("mechanize")
untuk membedakan antara kesalahan tidak dapat menemukannya dan tidak dapat-bertahan-mengimpor-itu?Jawaban:
Dalam kasus saya, ini masalah izin. Paket itu entah bagaimana diinstal dengan izin root rw saja, pengguna lain tidak dapat menemukannya!
sumber
sudo pip install ...
. Perbaikan sederhana:sudo chmod -R ugo+rX /lib/python2.7/site-packages/
sudo chmod 777 /usr/local/lib/python3.6/site-packages
pula triknyaSaya memiliki masalah yang sama: skrip dengan
import colorama
melemparkan dan ImportError, tetapisudo pip install colorama
mengatakan kepada saya "paket sudah diinstal".Saya perbaiki: menjalankan pip tanpa sudo :
pip install colorama
. Kemudian pip setuju bahwa itu perlu diinstal, diinstal, dan skrip saya berjalan.Lingkungan saya adalah Ubuntu 14,04 32-bit; Saya pikir saya melihat ini sebelum dan sesudah saya mengaktifkan virtualenv saya.
PEMBARUAN : lebih baik, gunakan
python -m pip install <package>
. Manfaat dari hal ini adalah, karena Anda mengeksekusi versi python spesifik yang Anda inginkan dalam paket, pip akan menginstal paket tersebut ke python "benar". Sekali lagi, jangan gunakan sudo dalam kasus ini ... maka Anda mendapatkan paket di tempat yang tepat, tetapi mungkin dengan izin root (yang tidak diinginkan).sumber
Ini masalah jalur python.
Dalam kasus saya, saya memasang python di:
dan tidak ada direktori paket situs di dalam python2.6.
Paket (SOAPpy) saya instal oleh pip terletak
Dan paket situs tidak di jalur python, yang saya lakukan adalah menambahkan paket situs ke PYTHONPATH secara permanen.
Di file teks yang muncul, tambahkan baris ini di akhir:
ekspor PYTHONPATH = $ PYTHONPATH: /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
sumber
Mekanisme impor Python berfungsi, sungguh, jadi, baik:
sumber
sudo pip install
terinstal dengan root privs, dan pada waktu impor ada sesuatu yang gagal karena kurangnya baca atau tulis akses.Saya telah membenturkan kepala saya ke monitor saya tentang hal ini sampai magang muda mengatakan kepada saya rahasianya adalah "python setup.py install" di dalam direktori modul.
Untuk beberapa alasan, menjalankan pengaturan dari sana membuatnya berfungsi.
Agar jelas, jika nama modul Anda adalah "foo":
Jika Anda mencoba menjalankan setup.py dari direktori lain dengan memanggil path-nya, Anda berakhir dengan instalasi borked.
TIDAK BEKERJA:
APAKAH BEKERJA:
sumber
Saya dapat memperbaiki masalah ini dengan pendekatan gabungan. Pertama, saya mengikuti saran Chris, membuka baris perintah dan mengetik 'pip show packagename' Ini memberikan lokasi paket yang diinstal.
Selanjutnya, saya membuka python dan mengetik 'import sys', lalu 'sys.path' untuk menunjukkan di mana python saya mencari paket apa pun yang saya impor. Sayangnya, lokasi yang ditunjukkan pada langkah pertama BUKAN dalam daftar.
Langkah terakhir, saya mengetik 'sys.path.append (' package_location_seen_in_step_1 '). Anda secara opsional dapat mengulangi langkah kedua untuk melihat lokasi sekarang dalam daftar.
Langkah uji, coba impor paket lagi ... berfungsi.
Kelemahannya? Ini bersifat sementara, dan Anda harus menambahkannya ke daftar setiap kali.
sumber
Saya menemukan ini ketika mencoba menggunakan keyring yang saya instal melalui
sudo pip install keyring
. Seperti yang disebutkan dalam jawaban lain, ini masalah izin dalam kasus saya.Apa yang berhasil untuk saya:
sudo pip uninstall keyring
-H
opsi sudo dan menginstal ulang keyring:sudo -H pip install keyring
Semoga ini membantu.
sumber
Saya baru mengenal python. Saya memperbaiki masalah ini dengan mengubah jalur penerjemah proyek.
File -> Settings -> Project -> Project Interpreter
sumber
Saya tidak bisa membuat PYTHONPATH saya berfungsi dengan baik. Saya menyadari bahwa menambahkan
export
masalah telah diperbaiki:(berhasil)
vs.
(tidak bekerja)
sumber
Dalam kasus saya, saya telah lari
pip install Django==1.11
dan tidak akan mengimpor daripython
juru bahasa.Menjelajahi perintah pip yang saya temukan
pip show
terlihat seperti ini:Perhatikan lokasi yang tertulis '3.4'. Saya menemukan bahwa-
python
perintah itu ditautkanpython2.7
Tepat di sebelah itu saya menemukan tautan yang disebut
python3
jadi saya menggunakannya. Anda juga dapat mengubah tautan kepython3.4
. Itu akan memperbaikinya juga.sumber
Dalam kasus saya itu adalah masalah dengan file .py init yang hilang dalam modul, yang ingin saya impor di lingkungan Python 2.7.
Python 3.3+ memiliki Paket Namespace Tersirat yang memungkinkannya untuk membuat paket tanpa file .py init .
sumber
Jika jawaban lain yang disebutkan tidak sesuai untuk Anda, coba hapus cache pip Anda dan instal ulang paket. Mesin saya menjalankan Ubuntu14.04 dan terletak di bawah
~/.cache/pip
. Menghapus folder ini membantu saya.sumber
Juga, pastikan bahwa Anda tidak bingung
pip3
denganpip
. Apa yang saya temukan adalah bahwa paket yang diinstal denganpip
tidak bekerja denganpython3
dan sebaliknya.sumber
Ketika Anda menginstal melalui
easy_install
ataupip
, apakah berhasil menyelesaikan? Apa hasil lengkapnya? Instalasi python mana yang Anda gunakan? Anda mungkin perlu menggunakansudo
sebelum perintah instalasi, jika Anda memasang modul ke direktori sistem (jika Anda menggunakan instalasi sistem python, mungkin). Tidak ada banyak informasi berguna dalam pertanyaan Anda yang harus ditiadakan, tetapi beberapa alat yang mungkin akan membantu termasuk:echo $PYTHONPATH
dan / atauecho $PATH
: ketika mengimpor modul, Python mencari salah satu variabel lingkungan ini (daftar direktori,:
dibatasi) untuk modul yang Anda inginkan. Mengimpor masalah seringkali karena direktori yang benar tidak ada dalam daftar iniwhich python
,,which pip
atauwhich easy_install
: ini akan memberi tahu Anda lokasi setiap executable. Mungkin membantu untuk mengetahui.Gunakan virtualenv , seperti yang disarankan @JesseBriggs. Ini bekerja dengan sangat baik
pip
untuk membantu Anda mengisolasi dan mengelola modul dan lingkungan untuk proyek Python yang terpisah.sumber
Saya punya masalah persis ini, tetapi tidak ada jawaban di atas yang berfungsi. Itu membuat saya gila sampai saya perhatikan bahwa sys.path berbeda setelah saya mengimpor dari proyek induk. Ternyata saya telah menggunakan importlib untuk menulis sedikit fungsi untuk mengimpor file yang tidak ada dalam hierarki proyek. Gagasan buruk: Saya lupa bahwa saya telah melakukan ini. Lebih buruk lagi, proses impor mucked dengan sys.path - dan membiarkannya seperti itu. Ide yang sangat buruk
Solusinya adalah menghentikan itu, dan cukup meletakkan file yang saya butuhkan untuk mengimpor ke proyek. Pendekatan lain adalah menempatkan file ke dalam proyeknya sendiri, karena perlu dibangun kembali dari waktu ke waktu, dan pembangunan kembali mungkin atau mungkin tidak bersamaan dengan pembangunan kembali proyek utama.
sumber
Saya punya masalah dengan 2.7 dan 3.5 yang diinstal pada sistem saya mencoba untuk menguji bot telegram dengan Python-Telegram-Bot .
Saya tidak bisa menjalankannya setelah menginstal dengan pip dan pip3, dengan sudo atau tanpa. Saya selalu mendapat:
Membaca pesan kesalahan dengan benar memberitahu saya bahwa python mencari di direktori saat ini untuk
telegram.py
. Dan benar, saya punya skrip yang tergeletak di sana bernama telegram.py dan ini dimuat oleh python ketika saya meneleponimport
.Kesimpulannya, pastikan Anda tidak memiliki
package.py
dir dalam pekerjaan Anda saat ini ketika mencoba untuk mengimpor. (Dan baca pesan kesalahan secara menyeluruh).sumber
Saya memiliki masalah yang sama (pada Windows) dan penyebab utama dalam kasus saya adalah perangkat lunak ANTIVIRUS ! Ini memiliki fitur "Auto-Containment", yang membungkus proses yang berjalan dengan semacam mesin virtual. Gejalanya adalah:
pip install somemodule
berfungsi dengan baik dalam satu jendela cmd-line danimport somemodule
gagal ketika dieksekusi dari proses lain dengan kesalahanSaya harap ini akan menghemat waktu untuk seseorang :)
sumber
Mungkin agak di luar topik, tetapi saya punya masalah
import PyYAML
. Tunjukkan bahwa Anda perlu melakukannyaimport yaml
. (tebak itu rtfm klasik ...)sumber
Saya punya masalah serupa menggunakan Django. Dalam kasus saya, saya bisa mengimpor modul dari shell Django, tetapi tidak dari .py yang mengimpor modul.
Masalahnya adalah saya menjalankan server Django (oleh karena itu, mengeksekusi .py) dari virtualenv yang berbeda dari mana modul telah diinstal.
Sebaliknya, contoh shell dijalankan di virtualenv yang benar. Makanya, mengapa itu berhasil.
sumber
Ini bekerja!!!
Ini sering terjadi ketika modul diinstal ke versi python yang lebih lama atau direktori lain, tidak perlu khawatir karena solusinya sederhana. - impor modul dari direktori tempat modul dipasang. Anda dapat melakukan ini dengan mengimpor
sys
modul python terlebih dahulu kemudian mengimpor dari jalur di mana modul diinstalsumber
Sebagian besar kasus yang mungkin telah dicakup dalam solusi, hanya berbagi kasus saya, kebetulan saya menginstal paket di satu lingkungan (misalnya
X
) dan saya mengimpor paket di lingkungan lain (misalnyaY
). Jadi, selalu pastikan bahwa Anda mengimpor paket dari lingkungan tempat Anda menginstal paket.sumber
Sesuatu yang bekerja untuk saya adalah:
Perintah tidak memerlukan sudo. Ini diuji pada OSX Mojave.
sumber
Dalam kasus saya, saya juga harus menginstal modul untuk superuser juga.
Rupanya superuse tidak dapat mengakses file pengguna normal dalam keadaan tertentu.
sumber
Bagi saya itu memastikan versi modul selaras dengan versi Python yang saya gunakan .. Saya membangun gambar pada sebuah kotak dengan Python 3.6 dan kemudian menyuntikkan ke gambar Docker yang kebetulan memiliki 3,7 diinstal, dan kemudian membenturkan kepalaku ketika Python memberitahuku modul tidak diinstal ...
36m
untuk Python 3.6bsonnumpy.cpython-36m-x86_64-linux-gnu.so
37m
untuk Python 3.7bsonnumpy.cpython-37m-x86_64-linux-gnu.so
sumber
pip install
versi yang cocok dengan versi Python yang Anda gunakan. Apa kesalahan yang Anda dapatkan, dan apa output daripython --version
Saya tahu ini adalah posting yang sangat lama tapi bagi saya, saya punya masalah dengan 32 bit python dan 64 bit python diinstal. Setelah saya menghapus python 32 bit, semuanya berjalan sebagaimana mestinya.
sumber
Saya telah memecahkan masalah saya bahwa perpustakaan yang sama berfungsi dengan baik di satu proyek (A) tetapi mengimpor perpustakaan yang sama di proyek lain (B) menyebabkan kesalahan. Saya menggunakan Pycharm sebagai IDE di OS Windows. Jadi, setelah mencoba banyak solusi potensial dan gagal menyelesaikan masalah, saya melakukan dua hal ini (menghapus folder "Venv", dan menerjemahkan juru bahasa):
Proyek 1-In (B), ada folder bernama ("venv"), yang terletak di Pustaka Eksternal /. Saya menghapus folder itu.
2-Langkah 1 (menghapus folder "venv") menyebabkan kesalahan dalam Konfigurasi Interpreter Python, dan ada pesan yang ditampilkan di atas layar yang mengatakan "Interpreter python tidak valid dipilih untuk proyek" dan "konfigurasikan python interpreter", pilih tautan itu dan membuka jendela baru. Di dalam daftar drop-down "Project Interpreter", ada garis berwarna Merah yang menunjukkan juru bahasa yang tidak valid sebelumnya. Sekarang, Buka daftar ini dan pilih Penerjemah Python (dalam kasus saya, ini adalah Python 3.7). Tekan "Terapkan" dan "OK" di bagian bawah dan Anda siap melakukannya.
Catatan: Ini berpotensi masalah di mana Lingkungan Virtual Proyek saya (B) tidak mengenali pustaka yang sudah diinstal dan berfungsi.
sumber
Jika Anda menggunakan lingkungan virtual, gunakan
pipenv install <module name>
bukanpip install <module name>
Bekerja untukku.
sumber
Punya masalah ini juga .. paket diinstal pada Python 3.8.0 tetapi VS Code menjalankan skrip saya menggunakan versi yang lebih lama (3.4)
memperbaiki di terminal:
py .py
Pastikan Anda menginstal paket pada Versi Python yang tepat
sumber
Seperti yang dilakukan teman untuk saya hari ini, inilah yang membantu saya (saya menggunakan Windows):
Tekan 'Pengaturan' -> 'Proyek' -> 'Project Interpreter'. Di sini, di jendela di sebelah kanan, ada garis dengan judul 'Project Interpreter' di sebelah kiri. Klik baris ini dan itu akan membuka beberapa baris tambahan.
Sekarang tekan baris 'Tampilkan Semua'. Sebuah jendela akan terbuka. Di jendela ini tekan tanda '+' kecil di sudut kanan atas.
Jendela baru akan terbuka. Di sebelah kiri ada 4 tab, tekan yang paling atas, yang bertuliskan 'Virtualenv Environment'. Sekarang, di jendela di sebelah kanan, tandai opsi 'Lingkungan Yang Ada'. Baris 'Juru Bahasa' akan menjadi jelas. Tekan tombol '...' di sebelah kanan baris.
Sekarang, jendela penjelajahan akan terbuka. Jelajahi direktori tempat Anda menginstal Python . Bukan yang dengan PyCharm. Ketika Anda sampai di sana, pilih file 'python.exe' dan tekan OK (jendela akan hilang).
Tekan OK lagi (jendela ini juga akan hilang).
Sekarang di jendela ini pastikan baris baru yang Anda buat ditandai, dan tekan OK lagi.
Sekarang, semua paket yang terinstal akan terlihat di penerjemah proyek, dan dibaca oleh program Anda.
sumber
Solusi paling sederhana yang bekerja untuk saya yang tidak saya lihat disebutkan di utas ini:
Saya memiliki beberapa versi Python yang diinstal tetapi mencoba menggunakan Python3.7 - jadi saya harus menggunakan:
sudo pip3.7 install <package>
sumber