OS: Ubuntu 14.04 LTS
Python: 2.7.6
Instalasi Gourmet Recipe Manager saya tiba-tiba berhenti memuat. Ketika saya menjalankannya di jendela terminal, saya mendapatkan yang berikut di akhir traceback:
import datetime as dt
ImportError: No module named datetime
Sejauh yang saya tahu, tidak ada yang berubah dan instalasi Python saya mutakhir. Itu hanya berhenti bekerja kemarin. Saya pasti akan menghargai pendekatan yang baik untuk mendiagnosis dan memperbaiki masalah ini!
Perbarui: terima kasih untuk semua yang menjawab!
Tim, saya minta maaf jika saya menanyakan pertanyaan ini di tempat yang salah. Harap tandai untuk menjadi pria baru hanya dengan mengikuti tautan dari situs web Ubuntu.
TheSchwa, saya mencoba saran Anda dan mendapatkan pesan kesalahan yang sama seperti di atas.
muru, paket sepertinya sudah diinstal, tapi saya tidak tahu apakah sudah diinstal / dikonfigurasi dengan benar. Bagaimana saya tahu?
Saya minta maaf untuk semua pertanyaan, tapi saya orang RedHat tua yang telah lama meninggalkan Linux. Semua barang apt / dpkg baru bagi saya.
import datetime
menggunakan interpreter python? Anda dapat memulai juru bahasa dengan membuka terminal dan mengeksekusipython
. Anda bisa membiarkannyaCtrl+d
.dpkg -S $(python -c "import datetime; print datetime.__file__")
, modul datetime berasal darilibpython2.7-stdlib
paket. Apakah paket itu dipasang dengan benar? Bisakah Anda mencoba menginstalnya kembali?/usr/lib/python2.7/lib-dynload/datetime.x86_64-linux-gnu.so
Anda punya file itu? Anda juga melihat/usr/lib/python2.7/lib-dynload
tercantum dalam output dariecho $(python -c "import sys; print sys.path")
? Btw sistem Stack Exchange sebenarnya tidak memberi tahu komentator ketika Anda mengedit posting Anda; jadi paling tidak selalu posting komentar cepat seperti "Pertanyaan yang diperbarui dengan info" sehingga kami mendapatkan pemberitahuan yang memberitahu kami untuk memeriksa kembali :)Jawaban:
Ini baru saja terjadi pada saya setelah pembaruan 14.10, dan sepertinya itu karena lingkungan virtual saya memiliki salinan lama
/usr/bin/python2.7
itu - tidak seperti biner baru - tidak termasukdatetime
built-in, dan mendapatkan kesalahan ketika mereka tidak dapat menemukannya pada disk di mana saja . Juru bahasa baru tampaknya mengimpornya tanpa file I / O (coba jalankan di bawahstrace
untuk memeriksa).Saya memperbaiki setiap lingkungan virtual dengan mengaktifkannya dan menjalankan:
sumber
cp: '/usr/bin/python2.7' and '/usr/bin/python2.7' are the same file
tetapi kesalahan masih adaactivate
skrip Anda , dalam hal ini - biasanya, setelah aktivasi,which python2.7
akan menunjukkan path ke Python lingkungan, tidak mengembalikan path ke sistem Python.Anda bisa menginisialisasi ulang virtualenv dengan:
sumber
virtualenv .
bukanvirtualenv ,
cd $VIRTUAL_ENV
.OSError: [Errno 1] Operation not permitted
sudo virtualenv .
untuk menginstal executable Python baru, dan kemudian mengubah kembali keseluruhan$VIRTUAL_ENV
ke pemilik direktori yang benar.Jika Anda mendapatkan ini mencoba menggunakan letsencrypt setelah upgrade, solusi ini bekerja untuk saya letsencrypt forum - Tidak dapat menggunakan impor otomatis: kesalahan: tidak ada modul bernama io / 2345/3
Saya baru saja menghapus ini:
sumber
rm -rf /opt/eff.org
membuatnya bekerjaSaya memiliki masalah yang sama dan akhirnya memutuskan itu harus AWS CLI karena saya perhatikan bahwa itu memiliki direktori python sendiri. Jadi saya menghapus AWS CLI dan menginstalnya kembali dan itu memperbaiki masalah:
sudo pip uninstall awscli
sudo pip install awscli
sumber
Ketika saya menemukan beberapa perubahan pada 14,04 sehingga Anda perlu melakukan ini dari root:
Hanya untuk datetime:
Untuk semua modul:
Juga jika Anda menggunakan salinan env virtual
ke env Anda.
sumber
Saya mendapatkan kesalahan ketika saya memutakhirkan dari Ubuntu 14.04 ke 14.10. Saya membuat ulang virtualenv saya dan masalahnya hilang. Jadi jika Anda bekerja dengan virtualenv, Anda harus membuatnya kembali.
Namun jika tidak, saya kira menginstal ulang proyek Anda akan berhasil. Jangan menyentuh pustaka sistem apa pun! Ini dapat bekerja untuk saat ini, tetapi berpotensi akan menyebabkan masalah dengan orang lain.
sumber
Ini terjadi setelah beberapa peningkatan Ubuntu. Solusi favorit saya adalah
Ini memperbarui semua yang diperlukan tanpa menghapus paket yang sudah diinstal.
Jika Anda memiliki banyak virtualenv untuk diperbarui, Anda dapat menggunakan
xargs
:sumber