ImportError: 'kodlamalar' adlı modül yok


108

Yakın zamanda ubuntu'yu yeniden yükledim ve 16.04'e yükselttim ve python kullanamıyorum:

$ python manage.py runserver
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted

Bu noktada, python kendi başına çalışmıyor

$ python
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted

Bu öneri bile artık işe yaramıyor:

unset PYTHONHOME
unset PYTHONPATH

Ne zaman bir şekilde düzeltsem, tekrar geri geliyor. Birkaç cevap geçici olarak düzeltmeye yardımcı olur, ancak iyiye götürmez. Python ve python3'ü birkaç kez yeniden yükledim. Buradan ne yapabilirim? teşekkür ederim


Bu Django ile mi yoksa sadece Python ile mi ilgili? Sorunuzu uygun etiketle düzenlemek isteyebilirsiniz.
Moses Koledoye

2
sadece python, django kullanıyordum
codyc4321

Python kurulumu tamamlanmamış gibi görünüyor. Python'u apt aracılığıyla mı yüklediniz veya kaynaktan derleyip yüklediniz mi? which python$ PATH içinde ilk olarak hangi python ikilisine sahip olduğunuzu kontrol etmek için çalıştırın .
HAL

Hem python2 hem de python3'ü kaldırıp yeniden yüklemeyi denediniz aptmi?

Sanal ortam içinde pip3 yükleme -r gereksinimleri.txt yapmaya çalışırken Bitnami Django yığınını kullanarak bununla karşılaştım. Sanal ortam kullanılmadan iyi çalıştı. Bunun neden bir sorun olduğunu anlamaya zaman ayırmadım.
Brad Rhoads

Yanıtlar:


89

Python-3 için sanal ortam dosyalarını kaldırmayı deneyin. Ve sıfırlamak.

rm -rf venv
virtualenv -p /usr/bin/python3 venv/
source venv/bin/activate
pip install -r requirements.txt

https://wiki.ubuntu.com/XenialXerus/ReleaseNotes#Python_3 edit fo


2
Harika! Python3'ü virtualenvkomutu kullanarak bir env'e nasıl kuracağımı öğrettiğin için teşekkürler ! Nedense bulmam yaklaşık 2 ayımı aldı. Amazing ...
MadPhysicist

2
Merhaba Bunu Amazon AMI cihazımda (RHEL'e göre) yapmayı denedim ama işe yaramıyor. Çözülebilecek başka bir yol var mı?
Divij Sehgal

1
son bir komutu girdiğimde bana aşağıdaki hatayı veriyor, lütfen çözebilir misiniz ... Gereksinimler dosyası açılamadı: [Errno 2] Böyle bir dosya veya dizin yok: 'requirements.txt'
Deepak Chawla

1
@DeepakChawla gereksinimleri.txt, bu komutu verdiğiniz pwd'de bulunmalıdır ve ortam oluşturmakla ilgisi yoktur, paketleri toplu modda kurmanın bir yolu.
Amar

7
Olması gerekmiyor source venv/bin/activatemu?
Keith

17

Windows10 Kullanıcısı için.

Windows10'da python3.4 kullanıyordum. Python3.5'i kurdum. PYTHONPATH, PYTHONHOME env değişkenini bulamadım. CMD konsolunda python komutu verirsem, python3.4 kullanmaya devam etti. Python3.4'ü sildim. CMD konsolunda python komutunu her verdiğimde aşağıdaki gibi bir hata göstermeye başlıyor.

Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

Sorunumu bulmak için aradım. Çözüm basitti. Python3.5'i kurduğunuzda, özel olarak kurabilir ve Python'u ortam değişkenlerine ekle'yi işaretleyebilirsiniz. Gelişmiş Seçenekler'de .

Ben sadece birisinin buraya benzer sorunları olması durumunda ayrıldım, böylece değerli zamanlarını çözmek için fazla boşa harcamasınlar.


Deneyimimi buna eklemek için - daha önce farklı bir Python sürümü yüklediyseniz ve bir ortam oluşturduysanız, Python'u kaldırın, kurulu olduğu yere gidin ve silin, ardından gidip yoldan python'a yapılan tüm referansları kaldırın, sonra C: \ Users \% USERNAME% \ konumuna gidin ve .virtualenv'leri silin. SONRA, kullanmak istediğiniz Python sürümünü, yola ekleyerek yükleyin
Kelly Bang

11

Windows7 altında aynı sorunla karşılaşıyordum. Hata mesajı şuna benzer:

Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

Current thread 0x000011f4 (most recent call first):

Python 2.7'yi kurdum (şimdi kaldırdım) ve python 3.6'yı kurarken "Gelişmiş Seçenekler'de ortam değişkenlerine Python ekle" yi kontrol ettim. Ortam Değişkeni " PYTHONHOME " ve " PYTHONPATH " " hala .

Sonunda " PYTHONHOME " u python3.6 kurulum yolunu değiştirerek ve " PYTHONPATH " değişkenini kaldırarak çözdüm .


9

Windows7'de aynı sorun için

Ortam değişkenleriniz / sistem değişkenleriniz yanlış ayarlanmışsa şöyle bir hata göreceksiniz:

Fatal Python error: Py_Initialize: unable to load the file system codec
ImportError: No module named 'encodings'

Current thread 0x00001db4 (most recent call first):

Bunu düzeltmek gerçekten çok basit:

  1. Python3.x sürümünü indirdiğinizde ve .exe dosyasını çalıştırdığınızda, size Python'u sisteminizde nereye yüklemek istediğinizi özelleştirme seçeneği sunar. Örneğin, şu konumu seçtim: C: \ Program Files \ Python36

  2. Ardından sistem özelliklerini açın ve " Gelişmiş " sekmesine gidin (Ya da basitçe şunu yapabilirsiniz: Başlat> " Ortam değişkenlerini " Ara'ya gidin > "Sistem ortam değişkenlerini düzenle" yi tıklayın.) "Gelişmiş" sekmesi altında, "Ortam Değişkenleri" ve tıklayın. "Ortam Değişkenleri" adlı başka bir pencere açılacaktır.

  3. Şimdi kullanıcı değişkenlerinizin "Yol Değişkeni" içinde listelenen doğru Python yoluna sahip olduğundan emin olun. Buradaki örneğimde görmelisiniz örneğimde, C: \ Program Files \ Python36 görmelisiniz . Orada bulamazsanız, Yol Değişkeni alanını seçip Düzenle'yi tıklayarak ekleyin.

  4. Son adım, PYTHONHOME'u iki kez kontrol etmek ve aynı pencerede Sistem Değişkenleri altındaki PYTHONPATH alanlarını . Yukarıda açıklananla aynı yolu görmelisiniz. Oraya da eklemezseniz.

Ardından Tamam'a tıklayın ve CMD terminaline geri dönün ve python'u kontrol etmeyi deneyin. Sorun şimdi çözülmelidir. Benim için çalıştı.


Bu, win10'da tamamen aynı. Benim durumumda sadece PYTHONHOME ve PYTHONPATH eski bir kuruluma ayarlanmıştı.
Andrés Marafioti

@dotpy_novice Lütfen 4. adımı ayrıntılı olarak vurgulayabilir misiniz? Kullanıcı değişkenlerimde listelenen herhangi bir yol yoktu ve 3. adımda da söylediğiniz gibi ekledim. Şimdi devam etmek için biraz tereddüt ediyorum. Sistem değişkenlerinde PYTHONHOME ve PYTHONPATH yoktur . Bunları kendim oluşturmalı mıyım, evet ise, Değişken adı ve Değişken değeri için ne eklemeliyim ?
bit_scientist

6

Ubuntu 17.10'a geçiş sırasında bu hatayı aldım ve bu sorunu çözdü:

sudo dpkg-reconfigure python3

Belki seansınızı kapatıp yeniden bağlanmanız gerekecek.


16.04'üm var, bu sorunumu çözmedi. Sadece anlamaya çalışıyorum, bu neden oldu
Xavitoj Cheema

Ubuntu 16.4'te aynı sorun .. Ubuntu'yu yeniden kurmalı mıyım? /usr/sbin/dpkg-reconfigure: python3 ist kaputt oder nicht komplett installiert
Timo

Üzerinde 18.04 Lubuntu, diyorFatal Python error: Py_Initialize: Unable to get the locale encoding
Timo

1

/Lib/python3.5'e bakın ve python kitaplıklarına giden bozuk bağlantılar göreceksiniz. Çalışma dizinine yeniden oluşturun.

Sonraki hata -

./script/bin/pip3
Failed to import the site module
Traceback (most recent call last):
  File "/home/script/script/lib/python3.5/site.py", line 703, in <module>
    main()
  File "/home/script/script/lib/python3.5/site.py", line 683, in main
    paths_in_sys = addsitepackages(paths_in_sys)
  File "/home/script/script/lib/python3.5/site.py", line 282, in addsitepackages
    addsitedir(sitedir, known_paths)
  File "/home/script/script/lib/python3.5/site.py", line 204, in addsitedir
    addpackage(sitedir, name, known_paths)
  File "/home/script/script/lib/python3.5/site.py", line 173, in addpackage
    exec(line)
  File "<string>", line 1, in <module>
  File "/home/script/script/lib/python3.5/types.py", line 166, in <module>
    import functools as _functools
  File "/home/script/script/lib/python3.5/functools.py", line 23, in <module>
    from weakref import WeakKeyDictionary
  File "/home/script/script/lib/python3.5/weakref.py", line 12, in <module>
    from _weakref import (
ImportError: cannot import name '_remove_dead_weakref'

böyle düzeltildi - /ubuntu/907035/importerror-cannot-import-name-remove-dead-weakref

cd my-virtualenv-directory
virtualenv . --system-site-packages

1

Bu sorunla karşı karşıyaydım "ModuleNotFoundError: macOS Catalina'ya güncelledikten sonra" kodlamalar "adlı modül yok.

Sistemime birden fazla Python sürümü yüklüyordum.

Tüm python sürümlerini (2.7 ve 3.7.4) macOS sisteminden kaldırmak ve en son python 3.8'i yeniden yüklemek benim için çalıştı.

Bir python'u macOS'tan kaldırmak için buradaki talimatları izledim Mac OS X 10.6.4'te Python 2.7 nasıl kaldırılır?

Yukarıdaki bağlantı python 2.7 içindir, ancak aynısını 3.7 için de kullanabilirsiniz.


0

Benzer bir sorun yaşadım. Bilgisayarıma hem anaconda hem de python yükledim ve python bağımlılıklarım Anaconda dizinindendi. Anaconda'yı kaldırdığımda, bu hata patlamaya başladı. Ekledim PYTHONPATHama yine de gitmedi. Kontrol ettim python -versionve hala anaconda yolunu kullandığını bilmeye gittim . Anaconda3 dizinini manuel olarak silmem gerekti ve bundan sonra python bağımlılıkları almaya başladı PYTHONPATH.
Sorun çözüldü!


0

Mac'imi kullanırken macOS Catalina'ya güncellerken aynı sorunu yaşadım pipenv. Pipenv virtualenvsizin için a oluşturur ve yönetir , dolayısıyla @ Anoop-Malav'dan gelen önceki öneri aynıdır, sadece pipenv kullanarak sanal ortamı mevcut dizine göre kaldırıp sıfırlayın:

pipenv --rm
pipenv shell  # recreate a virtual env with your current Pipfile

0

Benim durumumda sadece anaconda klasörünün izinlerini değiştirmek işe yaradı:

sudo chmod -R u=rwx,g=rx,o=rx /path/to/anaconda   

-1

Bu google'daki ilk sonuç olduğu için hapishanelerde sorun yaşayan diğer herkes için aşağıdaki bilgileri eklemek istiyorum:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007f079b16d740 (most recent call first):
Aborted (core dumped)

Python'u hapishanenize aktarmaya çalışırken, hem bağımlılıkları hem de /usr/lib/pythonX.Y'yi [JAIL] / usr / lib / ile bağlamanız gerekir. Bu yardımcı olur umarım.


Sevgili @matt, pythonx.y'yi 'hapse atma' adımlarını sağlayabilir misiniz?
Pranav

@Pranav Bu betiği kullanıyorum: gist.github.com/williamhaley/5a499cd7c83aa0e01eaf daha sonra copy_binary pythonX'i çalıştırabilirsiniz.Y daha sonra kitaplıkları gerçek kökünüzün altında bulabilirsiniz /usr/lib/pythonX.Y burada XY sizin python sürümünüzdür ( örnek python3.7). Bunları hapishanelerinize / usr / lib / kopyalayın ve hazırsınız. Şerefe
Matt

-2

Dosya -> Ayarlar'a gidin -> Proje sekmesi altında Proje Yorumlayıcı'yı seçin -> küçük dişli simgesine tıklayın -> Ekle -> Sistem Yorumlayıcı -> açılır menüden istediğiniz python sürümünü seçin

bu benim için çalışıyor gibiydi


bu onun sorunu değil
NotSoShabby

-12

Bunu da düzeltebilirim. PYTHONPATH ve PYTHONHOME neden oldu.

bunu bir terminalde çalıştır

   touch ~/.bash_profile
   open ~/.bash_profile

ve sonra bu dosyanın tüm gereksiz kısımlarını silin ve kaydedin. Bunu yapmanın nasıl tavsiye edildiğini bilmiyorum!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.