2017-04-13 12 views
-1

win10でpython3を使用しようとしています。cmdでコマンド 'python3'を使用して致命的なPythonエラーが発生する

これは私が使用しようとすると、私が得るものです:私も私のシステムで2.7を持っていることを

> python3 myscript.py 

Fatal Python error: Py_Initialize: unable to load the file system codec 
     File "C:\Python27\Lib\encodings\__init__.py", line 123 
     raise CodecRegistryError,\ 
           ^
    SyntaxError: invalid syntax 

Current thread 0x00001e44 (most recent call first): 

可能性のある問題、。 コマンドを使用するpyおよびpythonが動作します。 Python 2.7のスクリプトを問題なく実行します。

私は自分のフォルダをPYTHONPATHに追加しました。

enter image description here

誰かが答えを知っていますか?

+0

myscript.pyのコードも追加できますか? – Alden

+0

Python仮想環境を実行すると、将来この頭痛から救うことができます。 virtualenvのパッケージの下を見ると、どれくらいいいか分かります。 –

+0

Python 3で構文が変更されました。たとえば、 'ValueErrorを引き上げ、' oops 'を呼び出すと、ValueError(' oops ')を上げる必要があります。https://docs.python.org/3.0/whatsnew/を参照してください。 3.0.html#changes-exceptions – tdelaney

答えて

1

問題は、PYTHONPATHにPython 2と3の環境が混在していることです。あなたはpython 3に、Python 2ディストリビューションからモジュールを見つけてインポートするのはまったく問題ないと言った。そしてそれは涙で終わります。

Pythonは、実行時に標準インストールディレクトリについて既に認識しています。これは、stdlibと明示的にインストールするモジュール(例えば、pip経由)を対象としています。 PYTHONPATHはインストールしなかったものの、どこかにコピーしたものだけが必要です。

PYTHONPATHは、scriptsディレクトリまたはpython.exe自体には(通常)有効ではありません。スクリプトと.exeは、Pythonではなくオペレーティングシステムで見つけられる必要があるので、PATH上に置く必要があります。

ウィンドウマネージャは、ファイル拡張子をプログラムに関連付けて、その拡張子を実行することによって複雑化を追加できます。したがって、Windowsでは、デスクトップをクリックしてPython 2または3のスクリプトを実行可能にするかどうかを選択する必要があります。 Pythonのインストーラは、どのPythonを呼び出すかを知っているラッパーを作成することによって賢明になります。

Windowsにインストールした後は、スクリプトと.exeディレクトリをパスに追加することをお勧めします。あなたはPython 2と3の両方でこれを行うことができます...少し問題があります。 Python 2と3で同じような名前のスクリプトがある場合は、パスの最初のものが勝ちます。

あなたはPYTHONPATHを完全に削除し、これらがPATHにあることを確認できますか?私のWindowsのpythonのインストールはあなたと少し違うので、私は確かめるためにテストすることができませんでした。

C:\Python27 
C:\Python27\Scripts 
C:\Python36 
C:\Python36\Scripts 
+0

Python 3がインストールされている場合は、py [w] .exeランチャーが.py [w]ファイルに関連付けられていて、[virtual] shebangsを使用する必要があります - これはすべてドキュメント内で非常に冗長で慎重に説明されていますなぜここでそれを再ハッシュする必要があるのか​​分かりませんが、読むことを拒否する人のために何百万回も繰り返すことに呪われているようです。 – eryksun

+0

@eryksunええ、私はいくつかのインストーラが別のことをするのを見ましたが、それに追いつくために十分な窓を使用しません。私はその時点で漠然としていることを望んでいました。 – tdelaney

+0

あなたが言ったように私はやっており、python3.exeの名前をpython.exeに戻しました。今私はコマンドとして 'python3'を使う必要はなく、' python'は2.7と3.6のスクリプトを実行します。あなたの親切な先生に感謝! – MattSom

1

メインのPATH変数にpythonを追加します。

C:\Python35;C:\Python35\Lib\site-packages\;C:\Python35\Scripts\ 

あなたが使用しているものでバージョン番号を置き換えてください。また、virtualenvでPythonも調べてください。 libの下にあり、PIP経由でインストールできます。

1台のコンピュータで複数のバージョンを実行すると、時間と頭痛が大幅に軽減され、使いやすいです!

関連する問題