Windows 7でのPythonパスの追加


138

Windows 7のコマンドラインにPythonパスを追加しようとしていますが、どの方法を試しても、何も機能しないようです。私はsetコマンドを使用しましたが、環境変数の編集プロンプトなどから追加しようとしました。

さらに、コマンドラインでsetコマンドを実行すると、これがリストされます

python = c:\python27

それでも、Pythonコマンドはまだ認識されません。

ドキュメントや他のさまざまなソースを読んでも役に立たないようです。

編集:さらに明確にするために、編集環境のプロンプトでPATHにPython実行可能ファイルのパスを追加しました。動作していないようです。


実行可能ファイルはそのディレクトリ内にありますか?その中にいくつかのbinディレクトリはありませんか?
Anirudh Ramanathan 2011

@ anirudh4444いいえ、そのディレクトリにあります...
rogerklutz

あなたは両方得ることができますGUIし、Command Lineここからオプションをstackoverflow.com/a/38141751/5409601
Rafayet Ullah

あなたには有効ではありませんが、Python 3.6 Windowsインストーラー(および場合によっては以前のバージョン)では、インストールを「カスタマイズ」することを選択でき、パスにPythonを追加するためのチェックボックスがあります。
ポールハウナー2017年

回答:


266
  1. ホールドWinキーを押しPause
  2. [システムの詳細設定]をクリックします。
  3. 「環境変数」をクリックします。
  4. 変数に追加;C:\python27Pathます。
  5. コマンドプロンプトを再起動します。

2
うん、もうやったよ。元の質問でそれを明確にしていないとすみません
rogerklutz

11
Pythonおよびパス変数にスペースが含まれていないことを確認してください。
Yossi

4
@rogerklutz:既に存在するPATH変数に「; C:\ python27」を追加していることを確認し、「C:\ python27」を値として新しい変数を作成しないでください。
wassimans

5
多くの場合、Path変数を設定した後、ログアウトして再度ログインする必要があります。
dk123 2013年

同様の問題に苦しみ、ステップ5以外のすべてを実行しました。それを含めていただきありがとうございます。
ReiMasuro 14

112

Windowsで環境変数を設定するとき、私は多くの場合、多くの場合に失敗しました。私は過去の間違いのいくつかをここで共有する必要があると思いました。誰かの役に立つかもしれないと期待しています。(これらは、Pythonパスを設定するときだけでなく、すべての環境変数に適用されます)

これらの起こり得る間違いに注意してください:

  1. シェルウィンドウを強制終了して再度開く:環境変数に変更を加えたら、テストするウィンドウを再起動する必要があります。
  2. 変数を設定するときにスペースはありません;C:\Python27スペースなしで追加していることを確認してください。(C:\SomeOther; C:\Python27セミコロンの後にスペース(That)を入力するのはよくありません。)
  3. フルパスを綴るときは、バックスラッシュを使用してください。あなたがしようとするとスラッシュが表示されecho $PATHますが、私にとってはバックスラッシュのみが機能しました。
  4. 最後のバックスラッシュは追加しないでくださいC:\Python27ないだけC:\Python27\

これが誰かを助けることを願っています。


1
私がこの回答を選んだ理由は、ほとんどの場合、PATHはこれら4つの理由の1つが原因で壊れているためです。簡単な部分はそれを正しく行うことであり、難しい部分はあなたが間違ってそれをしたときに気づいています!
grettke、2015年

1
このコマンドecho $pathは、Windows(MinGWなど)でbashシェルを実行している場合にのみ有効です。Windowsコマンドプロンプトコマンドはecho %path%
Bruce Peterson

2
後続の反発が問題であるとは思いませんでした。何か不足していますか?
mystrdat

51

管理者権限でcmd .exeを開きます(アプリを右クリック)。次に、次のように入力します。

setxパス "%path%; C:\ Python27;"

セミコロンで終了し、末尾にスラッシュを含めないでください。


3
+ 1-これにより、管理者権限を必要とせずにパスに追加できます。ただし、%path%が必要かどうかはわかりません。私のWindows 7システムでは、新しいcmdウィンドウに以前のパスのコピーが2つあります。
ポールリンチ

32

これに長い間問題がありました。私は考えられるあらゆる方法でそれを自分のパスに追加しましたが、これが最終的に私のために働いたものです:

  1. 「マイコンピュータ」を右クリック
  2. 「プロパティ」をクリックします
  3. サイドパネルの[システムの詳細設定]をクリックします
  4. 「環境変数」をクリックします
  5. システム変数の下の「新規」をクリックします
  6. 名前を入力してくださいpythonexe(またはあなたが望むもの)
  7. 値であなたのpythonのパスを入力します(例:C:\Python32\
  8. (システムパーツの)Path変数を編集し、%pythonexe%;すでに存在するものの最後に追加します

IDKはなぜこれが機能するのか、それは私にとっては機能しました。

次に、コマンドラインに「python」と入力してみてください。うまくいくはずです。


編集:

最近、私はこのプログラムを使っています。あります。この1私はそれを試したことがありませんが、かなり良いに見えます。



14

コマンドを使用して、現在のcmdウィンドウからパスを設定できますPATH =。現在のcmdインスタンスにのみ追加されます。永続的に追加したい場合は、システム変数に追加する必要があります。(コンピューター>システムの詳細設定>環境変数)

あなたはあなたのcmdインスタンスに行き、に入れますPATH=C:/Python27/;%PATH%


このソリューションは、Win7 Proで私に役立ちました。でテスト済みecho %PATH~%
イゴール

11

新しいディレクトリの前にスペースを追加しないでください。

良い:古い;古い;古い;新しい

悪い:古い;古い;古い; 新着


9

Pythonには、これを行う小さなユーティリティが付属しています。コマンドラインから:

c:\python27\tools\scripts\win_add2path.py

コマンドウィンドウを(exitまたは閉じるボタンで)閉じてから、もう一度開いてください。


1
私の場合、これは登録を変更しますが、標準GUIダイアログを介して変更を手動で確認するまで、アプリは影響を受けません。アプリを再起動しても効果はありません。一種の放送も必要なようです。
Pavel Vlasov

これは8.1ではうまくいき、他のアプローチよりも簡単に思えます。ウィンドウ/ボックスが開き、実行する内容を尋ねます。[その他]を選択し、c:\ python27に戻って、Python実行可能ファイル(.exe)を選択します。効果は永続的であるように見えるので、それを一度だけ行う必要があります。すべてのユーザーに対してwin_add2path.pyを実行する必要がありますが、最初からボックスが表示されません。
user2099484

8

次のプログラムは、Python実行可能パスとサブディレクトリスクリプト(pipやeasy_installがインストールされている場所など)を環境に追加します。.py拡張子をバインドするレジストリキーからPython実行可能ファイルへのパスを見つけます。環境内の古いpythonパスを削除します。XP(おそらくVista)でも動作します。基本的なWindowsインストーラーに付属するモジュールのみを使用します。

# coding: utf-8

import sys
import os
import time
import _winreg
import ctypes

def find_python():
    """
    retrieves the commandline for .py extensions from the registry
    """
    hKey = _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT,
                           r'Python.File\shell\open\command')
    # get the default value
    value, typ = _winreg.QueryValueEx (hKey, None)
    program = value.split('"')[1]
    if not program.lower().endswith(r'\python.exe'):
        return None
    return os.path.dirname(program)

def extend_path(pypath, remove=False, verbose=0, remove_old=True,
                script=False):
    """
    extend(pypath) adds pypath to the PATH env. variable as defined in the
    registry, and then notifies applications (e.g. the desktop) of this change.
    !!! Already opened DOS-Command prompts are not updated. !!!
    Newly opened prompts will have the new path (inherited from the 
    updated windows explorer desktop)
    options:
    remove (default unset), remove from PATH instead of extend PATH
    remove_old (default set), removes any (old) python paths first
    script (default unset), try to add/remove the Scripts subdirectory 
        of pypath (pip, easy_install) as well
    """
    _sd = 'Scripts' # scripts subdir
    hKey = _winreg.OpenKey (_winreg.HKEY_LOCAL_MACHINE,
               r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
               0, _winreg.KEY_READ | _winreg.KEY_SET_VALUE)

    value, typ = _winreg.QueryValueEx (hKey, "PATH")
    vals = value.split(';')
    assert isinstance(vals, list)
    if not remove and remove_old:
        new_vals = []
        for v in vals:
            pyexe = os.path.join(v, 'python.exe')
            if v != pypath and os.path.exists(pyexe):
                if verbose > 0:
                    print 'removing from PATH:', v
                continue
            if script and v != os.path.join(pypath, _sd) and \
               os.path.exists(v.replace(_sd, pyexe)):
                if verbose > 0:
                    print 'removing from PATH:', v
                continue
            new_vals.append(v)
        vals = new_vals
    if remove:
        try:
            vals.remove(pypath)
        except ValueError:
            if verbose > 0:
                print 'path element', pypath, 'not found'
            return
        if script:
            try:
                vals.remove(os.path.join(pypath, _sd))
            except ValueError:
                pass
            print 'removing from PATH:', pypath
    else:
        if pypath in vals:
            if verbose > 0:
                print 'path element', pypath, 'already in PATH'
            return
        vals.append(pypath)
        if verbose > 1:
            print 'adding to PATH:', pypath
        if script:
            if not pypath + '\\Scripts' in vals:
                vals.append(pypath + '\\Scripts')
            if verbose > 1:
                print 'adding to PATH:', pypath + '\\Scripts'
    _winreg.SetValueEx(hKey, "PATH", 0, typ, ';'.join(vals) )
    _winreg.SetValueEx(hKey, "OLDPATH", 0, typ, value )
    _winreg.FlushKey(hKey)
    # notify other programs
    SendMessage = ctypes.windll.user32.SendMessageW
    HWND_BROADCAST = 0xFFFF
    WM_SETTINGCHANGE = 0x1A
    SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, u'Environment')
    if verbose > 1:
        print 'Do not forget to restart any command prompts'

if __name__ == '__main__':
    remove = '--remove' in sys.argv
    script = '--noscripts' not in sys.argv
    extend_path(find_python(), verbose=2, remove=remove, script=script)

これは私のPATHを台無しにしました。ここに修正バージョンがあります(私はremove_oldも削除しましたが、これは正しく実行することは不可能です*):gist.github.com/anonymous/fb5d176ab91dccbd0ebd *はい
Aur Saraf

6

私はこの投稿が古いことを知っていますが、ソリューションが管理者の特権を想定していることを付け加えたいと思います。あなたがそれらを持っていない場合は、次のことができます:

コントロールパネルに移動し、パスを入力して(これはWindows 7なので、検索ボックスに表示されます)、[アカウントの環境変数を編集]をクリックします。「環境変数」ダイアログが表示され、上部に「ユーザー変数」、下部に「システム変数」が表示されます。

ユーザーは、上部の「新規」ボタンをクリックして、以下を追加できます。

変数名:PATH
変数値:C:\ Python27

(どこにもスペースはありません)、[OK]をクリックします。コマンドプロンプトを再起動すると、ユーザー変数のPATHがシステムパスの最後に追加されます。それは他の方法でPATHを置き換えません。

特定の完全パスを設定したい場合は、次のようなバッチファイルを作成することをお勧めします。

@echo off
PATH C:\User\Me\Programs\mingw\bin;C:\User\Me\Programs;C:\Windows\system32
title Compiler Environment - %Username%@%Computername%
cmd

それを「compiler.bat」などと呼び、ダブルクリックして起動します。またはそれにリンクします。またはピン留めなど...


6

システム変数を変更する必要があります -[
マイコンピュータ]を右クリックします
-[プロパティ]をクリックします-
サイドパネルの
[ システムの詳細設定]をクリックします-環境変数をクリックします-ユーザーの2つのセクションになります変数とシステム変数
-システム変数セクションで変数 'Path'を検索し、編集をクリックして追加します
"C:\Python27;"(引用符なし)保存します
-コマンドラインタイプ 'path'を押してEnterを押すと、パス変数が変更されたことがわかります
-タイプpython --versionすると、Pythonのバージョンが表示されます

そしてそれが行われます


5

Python 3.3以降でこれを実現しようとしている人のために、Windowsインストーラーにpython.exeをシステム検索パスに追加するオプションが含まれるようになりました。詳細については、ドキュメントをご覧ください。


1
インストールの正確なパスを見つけるのに苦労していたため、これを使用しました。インストーラーを起動し、[変更]をクリックしてから、[オプション機能]で[次へ]をクリックし、ボックスをチェックしてPythonをシステムパスに追加し、[完了]をクリックします。
Rishi

4

Windows環境変数の操作は常に恐ろしい経験です。最近、Rapid Environment Editorと呼ばれる素晴らしいツールを見つけました。これは、それらを管理するための驚くほどシンプルなGUIを提供します。

Chocolateyを使用する場合は、を使用してインストールできますchoco install rapidee。それ以外の場合は、http: //www.rapidee.com/en/downloadをご覧ください。

これをもう一度読んでみると、それは有料の小説のように聞こえますが、私はそうではないと誓います!これは、しばらくの間、私のツールキットで最も便利なユーティリティの1つにすぎません。そのことを誰も知らないようで驚いています。


3

私の場合、ArcGIS 10.1などの別のプログラムでPythonがインストールされている場合は、python.exeへのパスである追加のフォルダーも環境変数に含める必要があります。

したがって、私の環境変数は次のようになります。

システム変数>パス>追加 ;C:\Python27\ArcGIS10.1


2

この質問はかなり古いですが、私は同様の問題に遭遇し、私の特定の解決策はここにリストされていませんでした:

PATHに存在しないフォルダがないことを確認してください。

私の場合、デフォルトのフォルダ(Windowsの、PowerShellのは、SQL Serverなど)との束を持っていた、カスタムC:\bin、私は一般的に使用し、その後、他のさまざまな微調整が好きなことc:\python17など、それはCMDのプロセッサは、その発見されたことが判明c:\binのdidnを存在せず、残りの変数の処理を停止しました。

また、PATHマネージャーがなければ、これに気づいたことはありません。そのアイテムが無効であるという事実をうまく強調しました。


2

「PythonをPATHに追加」オプションを使用して、Windows 7にPython 3.3をインストールしました。

PATH変数で、インストーラーは自動的に最後のバックスラッシュを追加しました。C:\Python33\ そのため、コマンドプロンプトで機能ませんでした(プロンプトを数回閉じたり開いたりしてみました)。

私は最後のバックスラッシュを削除し、それが機能しました:C:\Python33

ヒント4を提供してくれたRam Narasimhanに感謝します。


2

私はcmdを使用して、Win7 64ビットでpython環境変数をこのように編成しました。

PYTHONPATHウィンドウの環境変数メニューを介して変数を設定し、変数に追加%PYTHONPATH%しましたPATH

...;%PYTHONPATH%

cmdシェルは、変数を次のように正しく展開します。

C:\>echo %PYTHONPATH%
C:\python27;c:\python27\lib;C:\python27\scripts

PATHを変更した後、cmdシェルを再起動することを忘れないでください。


0

コマンドプロンプトで次のように記述します。

set Path=%path%

%path%をPythonフォルダーのパスの例で置き換えます。

set Path=C:/Python27

-2

pythonのパスを設定してイライラしている場合は、新しいバージョンのpythonをダウンロードして古いバージョンのpythonをアンインストールし、新しいバージョンをインストールするときに、パスマークを設定してインストールするかどうか尋ねられます

その最善の方法

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