ImportError: 'encodings'という名前のモジュールはありません


106

最近ubuntuを再インストールし、16.04にアップグレードしましたが、pythonを使用できません。

$ 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

この時点では、Python自体は機能しません

$ 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

この提案でさえ機能しなくなっています:

unset PYTHONHOME
unset PYTHONPATH

私が修正するたびに、それは再び戻ってきます。いくつかの答えは一時的にそれを修正するのに役立ちますが、良いことではありません。pythonとpython3を何度か再インストールしました。ここから何ができますか?ありがとうございました


これはDjangoまたはPythonに関連していますか?適切なタグで質問を編集することができます。
Moses Koledoye 2016年

2
ちょうどpython、私はたまたまdjangoを使用しています
codyc4321

Pythonのインストールが不完全なようです。apt経由でpythonをインストールしましたか、それともソースからコンパイルしてインストールしましたか?which python$ PATHに最初にあるpythonバイナリを確認するために実行します。
HAL

アンインストールしてpython2とpython3の両方を再インストールしてみましたaptか?

仮想環境でpip3 install -r requirments.txtを実行しようとしたときに、Bitnami Djangoスタックを使用してこれに遭遇しました。仮想環境を使用せずに問題なく動作しました。これがなぜ問題だったのかを理解するのに時間がかかりませんでした。
Brad Rhoads

回答:


87

Python-3の場合は、仮想環境ファイルを削除してみてください。そしてそれをリセットします。

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
すごい!virtualenvコマンドを使用してpython3を環境にインストールする方法を教えてくれてありがとう!どういうわけか、それを見つけるのに約2ヶ月かかりました。すばらしい...
MadPhysicist 2017

2
こんにちは私は(RHELベースの)Amazon AMIデバイスでこれを試してみましたが、機能しません。それを解決できる他の方法はありますか?
Divij Sehgal 2017

1
最後の1つのコマンドを入力すると、以下のエラーが表示されます。解決できますか?要件ファイルを開けませんでした:[Errno 2]そのようなファイルまたはディレクトリはありません: 'requirements.txt'
Deepak Chawla

1
@DeepakChawla requirements.txtは、このコマンドを発行する場所のpwdに存在する必要があり、環境の作成とは関係ありません。これは、パッケージをバッチモードでインストールする方法です。
2017年

7
そうじゃないのsource venv/bin/activate
キース、

16

Windows10ユーザー向け。

Windows10でpython3.4を使っていました。python3.5をインストールしました。PYTHONPATH、PYTHONHOME環境変数が見つかりませんでした。CMDコンソールでpythonをコマンドすると、python3.4を使い続けました。python3.4を削除しました。CMDコンソールでpythonを実行すると、次のようなエラーが表示されます。

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

私は自分の問題を理解するために検索しました。解決策は簡単でした。python3.5をインストールするときに、カスタムインストールして、[詳細オプション]の[ 環境変数Pythonを追加]をオンにすることができます。

誰かが同様の問題を抱えている場合に備えて、ここを離れます。貴重な時間を無駄にしないためです。


11

Windows7でも同じ問題に直面していました。エラーメッセージは次のようになります。

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(現在はアンインストール)をインストールし、python 3.6のインストール中に[詳細オプションの環境変数にPythonを追加する]をオンにしました。環境変数「PYTHONHOME」と「PYTHONPATH」はまだpython2.7であることが判明しました。

最後に、「PYTHONHOME」をpython3.6インストールパスに変更し、変数「PYTHONPATH」を削除して解決しました。


9

Windows7の同じ問題について

環境変数/システム変数が正しく設定されていないと、次のようなエラーが表示されます。

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

Current thread 0x00001db4 (most recent call first):

これを修正することは本当に簡単です:

  1. Python3.xバージョンをダウンロードして.exeファイルを実行すると、システム内のどこにPythonをインストールするかをカスタマイズするオプションが表示されます。たとえば、次の場所を選択しました:C:\ Program Files \ Python36

  2. 次に、システムプロパティを開き、[ 詳細設定 ]タブに移動します(または、これを行うことができます:[スタート] > [ 環境変数 ]を検索> [システム環境変数の編集]をクリックします)。[詳細設定]タブで、 「環境変数」をクリックしてください。「環境変数」という名前の別のウィンドウがポップアップします。

  3. ここで、ユーザー変数が「パス変数」にリストされている正しいPythonパスを持っていることを確認します。この例では、C:\ Program Files \ Python36が表示されます。そこで見つからない場合は、[パス変数]フィールドを選択して[編集]をクリックし、追加します。

  4. 最後のステップは、同じウィンドウのシステム変数の下にあるPYTHONHOMEフィールドとPYTHONPATHフィールドを確認することです。上記と同じパスが表示されます。そうでない場合も追加します。

次に[OK]をクリックしてCMDターミナルに戻り、Pythonを確認してみます。これで問題は解決されるはずです。それは私のために働いた。


これはwin10でもまったく同じです。私の場合、PYTHONHOMEとPYTHONPATHが古いインストールに設定されているだけでした。
アンドレス・Marafioti

@dotpy_novice手順4を詳しく説明してもらえますか?ユーザー変数にパスがリストされていなかったため、手順3で言ったように追加しました。次に進むのに少し躊躇しています。システム変数にPYTHONHOMEPYTHONPATHはありません。自分で作成する必要があります。作成する場合は、変数名変数値に何を挿入すればよいですか?
bit_scientist 2018年

6

Ubuntu 17.10への移行中にこのエラーが発生し、これにより問題が解決しました:

sudo dpkg-reconfigure python3

おそらく、セッションを閉じて再接続する必要があります。


16.04を使用していますが、これで問題は解決しませんでした。私はただ理解しようとしています、なぜこれが起こったのですか
Xavitoj Cheema

Ubuntu 16.4でも同じ問題が発生します。Ubuntuを再インストールする必要がありますか?/usr/sbin/dpkg-reconfigure: python3 ist kaputt oder nicht komplett installiert
Timo

18.04 Lubuntu、それは言うFatal Python error: Py_Initialize: Unable to get the locale encoding
Timo

1

/lib/python3.5を見ると、pythonライブラリへのリンクが壊れています。作業ディレクトリに再作成します。

次のエラー-

./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'

このように修正-/ubuntu/907035/importerror-cannot-import-name-remove-dead-weakref

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

1

macOS Catalinaにアップデートした後、「ModuleNotFoundError: 'encodingsという名前のモジュールはありません」という問題に直面していました。

システムに複数のバージョンのPythonがインストールされていました。

macOSシステムからすべてのpythonバージョン(2.7および3.7.4)を削除し、最新のpython 3.8を再インストールするとうまくいきました。

macOSからpythonを削除するには、ここからMac OS X 10.6.4でPython 2.7をアンインストールする方法の指示に従ってください

上記のリンクはpython 2.7用ですが、3.7でも同じように使用できます。


0

同様の問題がありました。私のコンピューターにはanacondaとpythonの両方がインストールされており、pythonの依存関係はAnacondaディレクトリーからのものでした。Anacondaをアンインストールすると、このエラーが発生し始めました。追加しましたPYTHONPATHが、まだうまくいきませんでした。私はチェックしpython -versionて、それがまだアナコンダの道を進んでいることを知りました。Anaconda3ディレクトリを手動で削除する必要があり、その後、Pythonはから依存関係を取得し始めましたPYTHONPATH
問題は解決しました!


0

を使用しているときに、macをmacOS Catalinaに更新するときに同じ問題が発生しましたpipenv。Pipenvはを作成して管理するvirtualenvため、@ Anoop-Malavからの以前の提案は同じです。pipenvを使用して現在のディレクトリに基づいて仮想環境を削除し、それをリセットするだけです。

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

0

私の場合、anacondaフォルダの権限を変更するだけでうまくいきました:

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

-1

これはグーグルの最初の結果なので、刑務所に問題がある他の人のために次の情報を追加したいだけです:

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をjailにインポートしようとするとき、依存関係と/usr/lib/pythonX.Yを[JAIL] / usr / lib /にリンクする必要があります。お役に立てれば。


親愛なる@mattはpythonx.yを「刑務所」にする手順を提供できますか?
プラナフ

@Pranavこのスクリプトを使用しています:gist.github.com/williamhaley/5a499cd7c83aa0e01eaf 次に、copy_binary pythonX.Yを実行して、実際のルート/usr/lib/pythonX.Yの下でライブラリを検索します。ここで、XYはpythonのバージョンです(例python3.7)。それらをjailの/ usr / lib /にコピーしてください。乾杯
マット

-2

[ファイル]-> [設定]-> [プロジェクト]タブで[プロジェクトインタープリター]を選択する->小さな歯車のアイコンをクリックする-> [追加]-> [システムインタープリター]->ドロップダウンメニューから目的のPythonバージョンを選択する

これは私にはうまくいったようです


これは彼の問題ではありません
NotSoShabby

-12

これも修正できました。PYTHONPATHとPYTHONHOMEが原因でした。

これをターミナルで実行する

   touch ~/.bash_profile
   open ~/.bash_profile

このファイルの不要な部分をすべて削除して保存します。それをするのがどれほどお勧めかわかりません!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.