web-dev-qa-db-ja.com

Pythonコマンドラインで間違ったバージョンを実行しますか?

Windows 7コンピューターにいくつかのバージョンのPythonがインストールされています。

デフォルトでPython 2.7を実行したいのですが、何らかの理由でコマンドラインにpythonと入力すると、Pythonバージョン2.4.5が実行されます。私はシステムパス変数にC:\Python27この質問 として追加し、Pythonを確認するために手動でパス変数を組み合わせました2.4.5が誤ってそこに投げ込まれたが、それは問題を解決しなかった。正しいバージョンのpythonにアクセスしたい場合は、毎回C:\Python27\python.exeを入力する必要があります。

他にどのような場所を確認できますか?コマンドラインで正しいバージョンのPythonを使用するにはどうすればよいですか?

this も見つかりましたが、これはWindows用ではありません。

[編集]
私のパス(セミコロンで区切られています):

C:\Program Files\Common Files\Microsoft Shared\Windows Live;
C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;
C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files\Dell\DW WLAN Card\Driver;
C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;
C:\Program Files (x86)\Windows Live\Shared;
c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;
c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;
c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;
C:\Program Files\TortoiseGit\bin;
C:\Program Files\Java\jdk1.6.0_26\bin;
C:\Program Files\Java\jdk1.6.0_21 ;
C:\Program Files\IVI Foundation\VISA\Win64\Bin\;
C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin\;
C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin;
C:\Program Files\WPIJavaCV\OpenCV_2.2.0\bin;
C:\Program Files (x86)\LilyPond\usr\bin;
C:\Program Files\TortoiseSVN\bin;
C:\Program Files (x86)\doxygen\bin;
C:\Program Files (x86)\Graphviz 2.28\bin;
C:\Users\Michael\bin\Misc\cppcheck\;
C:\Program Files (x86)\Git\cmd;
C:\Python27\python.exe;
C:\Ruby192\bin;
C:\Users\Michael\AppData\Roaming\cabal\bin;
C:\Python27\; 

[EDIT 2]
pythonを実行すると、これが発生します:

'import site' failed; used -v for traceback
Python 2.4.5 (#1, Jul 22 2011, 02:01:04)
[GCC 4.1.1] on mingw32
Type "help", "copyright", "credits" or "license" for more information.
>>> 

...そしてpython --version(以下で推奨)を実行することは、認識されないオプションのようです。

(また、python -vを実行してみましたが、Python 2.4がC:\Python27\Libからライブラリをインポートしようとしているようで、withステートメント、後のバージョンで追加されたと思います)

また、それが重要かどうかはわかりませんが、上記のpythonバージョンはGCCとmingw32について何かを述べていますが、C:\python27\python.exeを実行すると次のようになります。

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>> 
7
Michael0x2a

Python 2.4.5セッションにいる間、これを使用して、取得されるPython.exeを見つけます。

import sys
print sys.executable

複数のバージョンで遊ぶ場合は、%PATH%に依存することはできません。代わりに、必要なバージョンを呼び出す個別のバッチファイルを作成できます(ただし、バッチファイル自体がPATH上にあることを確認してください)。たとえば、2.7.2の場合、単に以下を含むPY27.BATを作成できます。

@C:\Python27\Python.exe $*
2
efotinis

レジストリエディタで.py拡張子を更新する必要があります。 「.py」エクステンションを検索し、(デフォルト)キーが何を指しているかも確認します。それはおそらく中にあります:

HKEY_CLASSES_ROOT/.py/(Default)

このキーの「データ」はおそらく「Python.File」です(下のスクリーンショットを参照)。 enter image description here

これを使用して、2番目のキーを検索します。

HKEY_CLASSES_ROOT/<previous_keys_data>/Shell/open/command/@default
e.g.
HKEY_CLASSES_ROOT/Python.File/Shell/open/command/@default

(デフォルト)キーには、使用するPythonインタープリターへのパスが含まれています。使用したいインタープリターを指すように、必要に応じて更新してください(スクリーンショットを参照)。 enter image description here

バックグラウンド

コマンドラインで選択したPythonインタープリターは、実際にpython実行可能ファイルを指定した場合にのみ、PATH環境変数を使用します。

python myProgram.py

実際に「python」を含めずに、コマンドシェルは.pyファイル(上記の最初のキー)を開くプログラムを見つけようとします。

次に、このキーを使用して適切なプログラムを検索します(2番目のキー)。

@efotinisが言ったように、単純なプログラムを使用して、使用されているインタープリターを判別できます。

import sys
print sys.executable

次の両方でこれを実行して、PATHを使用して指定した実行可能ファイルを見つけることと、コマンドインタープリターを使用して指定した.pyファイルを開くプログラムを見つけることの違いを確認してください。

python myProgram.py
myProgram.py
5
jmc

このスレッドが上位の結果を得て、この回答が表示されないための投稿。この単純な解決策は、Windows 7で私にとってうまく機能したものです。Path変数のシステム変数を確認する必要があります。 1 _echo %PATH%_は私のためにそれらを印刷するようには見えないので、以下を使用してそれらを表示および編集します。

Windowsメニューの[マイコンピュータ]を右クリックして、システム変数を確認します。

これにより、Pathを編集するためのウィンドウが表示されます。 pythonの複数のバージョンがインストールされている場合は、デフォルトとして使用するバージョンがリストの最初にあることを確認してください。python 2.7たとえば、他のバージョンの前にリストされている必要があります。

鉱山は次のようになります:C:\Python27\;C:\Program Files (x86)\Python35-32\;

動作を確認するには、再起動してcmdプロンプトを開きます。次に_python -V_を実行します

これで_Python 2.7.11_が出力され、pythonコマンドのみに依存する実行中のスクリプトがこのバージョンを使用しているように見えます。

0
iyrin