Windows 7에서 Python 경로 추가


138

Windows 7의 명령 줄에 Python 경로를 추가하려고 시도했지만 시도한 방법에 관계없이 아무것도 작동하지 않는 것 같습니다. set명령을 사용했으며 환경 변수 편집 프롬프트 등을 통해 추가하려고했습니다.

명령 줄에서 set 명령을 실행하면 다음이 나열됩니다.

python = c:\python27

그러나 여전히 파이썬 명령을 인식하지 못합니다.

설명서 및 기타 다양한 소스를 읽는 것이 도움이되지 않는 것 같습니다.

편집 : 더 명확히하기 위해 편집 환경 프롬프트에서 Python 실행 파일의 경로를 PATH에 추가했습니다. 작동하지 않는 것 같습니다.


실행 파일이 해당 디렉토리 내에 있습니까? 그 안에 bin 디렉토리가 없습니까?
Anirudh Ramanathan

@ anirudh4444 아니, 그 디렉토리에 ...
rogerklutz

여기에서 모두 GUICommand Line옵션을 얻을 수 있습니다. stackoverflow.com/a/38141751/5409601
Rafayet Ullah

Python 3.6 Windows Installer (및 잠재적으로 이전 버전)에서는 설치를 "사용자 정의"하도록 선택할 수 있으며 경로에 Python을 추가 할 수있는 확인란이 있습니다.
paulhauner

답변:


266
  1. 을 길게 Win누릅니다 Pause.
  2. 고급 시스템 설정을 클릭하십시오.
  3. 환경 변수를 클릭하십시오.
  4. 추가] ;C:\python27받는 Path변수입니다.
  5. 명령 프롬프트를 다시 시작하십시오.

2
그래, 난 이미 해냈어 원래 질문에서 명확하지 않은 경우 죄송합니다
rogerklutz

11
파이썬과 경로 변수에 공백이 없는지 확인하십시오.
Yossi

4
@rogerklutz : "; C : \ python27"을 이미 존재하는 PATH 변수에 추가하고 "C : \ python27"을 값으로 사용하여 새 변수를 작성하지 않도록하십시오.
wassimans

5
대부분의 경우 Path 변수를 설정 한 후 로그 아웃했다가 다시 로그인해야합니다.
dk123

비슷한 문제를 겪고 5 단계를 제외한 모든 일을했습니다 ... 포함하여 주셔서 감사합니다.
ReiMasuro

112

Windows에서 환경 변수를 설정할 때 많은 경우에 잘못되었습니다. 나는 누군가에게 도움이되기를 희망하면서 과거의 실수 몇 가지를 공유해야한다고 생각했습니다. (이것은 파이썬 경로를 설정할 때뿐만 아니라 모든 환경 변수에 적용됩니다)

다음과 같은 실수를 조심하십시오.

  1. 쉘 창 종료 및 다시 열기 : 환경 변수를 변경 한 후에 는 테스트중인 창 을 다시 시작 해야합니다.
  2. 공백이 변수를 설정하지 않을 때. ;C:\Python27공백없이 추가 해야합니다. ( C:\SomeOther; C:\Python27세미콜론 뒤에는 그 공간 (␣)을 사용하는 것이 일반적 이지 않습니다.)
  3. 전체 경로를 철자 할 때는 백 슬래시를 사용 하십시오. 시도 할 때 슬래시가 표시 echo $PATH되지만 역 슬래시 만 나를 위해 일했습니다.
  4. 최종 백 슬래시를 추가하지 마십시오 . 만 C:\Python27하지C:\Python27\

이것이 누군가를 돕기를 바랍니다.


1
이 답변을 선택한 이유는 대부분 4 가지 중 하나 때문에 PATH가 손상 되었기 때문입니다. 쉬운 부분은 올바르게하고있는 것이고, 어려운 부분은 잘못했을 때 알아 차리고 있습니다!
grettke

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 창에는 이제 이전 경로의 두 사본이 있습니다.
Paul Lynch

32

나는 오랫동안 이것에 문제가 있었다. 내가 생각할 수있는 모든 방법으로 내 길에 추가했지만 마침내 나를 위해 일한 것이 있습니다.

  1. "내 컴퓨터"를 마우스 오른쪽 버튼으로 클릭하십시오
  2. "속성"을 클릭하십시오
  3. 측면 패널에서 "고급 시스템 설정"을 클릭하십시오
  4. "환경 변수"를 클릭하십시오
  5. 시스템 변수 아래 "새로 만들기"를 클릭하십시오
  6. 이름으로pythonexe (또는 원하는 것을 입력하십시오 )
  7. 값에 파이썬의 경로를 입력합니다 (예 : C:\Python32\)
  8. 이제 시스템 변수에서 Path 변수를 편집하고 %pythonexe%;이미 존재하는 것의 끝에 추가하십시오

IDK가 왜 효과가 있지만 그것은 나를 위해했습니다.

그런 다음 명령 줄에 "python"을 입력하면 작동합니다!


편집하다:

최근에 나는 이 프로그램 을 사용하여 꽤 잘 작동하는 것 같습니다. 도 있습니다 이것 나는 그것을 시도 적이 있지만, 꽤 좋은 보인다.



14

명령을 사용하여 현재 cmd 창 에서 경로를 설정할 수 있습니다 PATH =. 현재 cmd 인스턴스에만 추가됩니다. 영구적으로 추가하려면 시스템 변수에 추가해야합니다. (컴퓨터> 고급 시스템 설정> 환경 변수)

cmd 인스턴스로 이동하여을 넣습니다 PATH=C:/Python27/;%PATH%.


이 솔루션은 Win7 Pro에서 저에게 효과적이었습니다. 로 테스트했습니다 echo %PATH~%.
Igor

11

새 디렉토리 앞에 공백을 추가하지 마십시오.

좋은 : 오래된; 오래된; 오래된; 새로운

나쁜 : 오래된; 오래된; 오래된; 새로운


9

파이썬은이 작업을 수행하는 작은 유틸리티를 제공 합니다 . 명령 행에서 다음을 실행하십시오.

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

명령 창 ( exit또는 닫기 단추 사용)을 닫고 다시여십시오.


1
나에 관해서는, 레지스터를 변경하지만 std GUI 대화 상자를 통해 변경 사항을 수동으로 확인할 때까지 응용 프로그램에 영향을 미치지 않습니다. 앱을 다시 시작해도 도움이되지 않습니다. 방송이 필요한 것 같습니다.
Pavel Vlasov

이것은 8.1에서 저에게 효과적이며 다른 접근법보다 쉽습니다. 창 / 상자가 열리고 실행할 항목을 묻습니다. 기타를 선택한 다음 c : \ python27로 돌아가서 python 실행 파일 (.exe)을 선택하십시오. 효과는 영구적으로 나타나므로 한 번만 수행하면됩니다. 모든 사용자에 대해 win_add2path.py를 실행해야하지만 처음에는 상자를 얻지 못합니다.
user2099484

8

다음 프로그램은 파이썬 실행 파일 경로와 하위 디렉토리 스크립트 (예 : pip 및 easy_install이 설치된 위치)를 환경에 추가합니다. .py 확장자를 바인딩하는 레지스트리 키에서 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)

이것은 내 길을 망쳤다. 여기에 고정 된 버전 (I도 제대로 할 수없는 * 인 remove_old 제거)된다 gist.github.com/anonymous/fb5d176ab91dccbd0ebd는 * 예
마차부 사라 프

6

이 게시물이 오래되었다는 것을 알고 있지만 솔루션에 관리자 권한이 있다고 가정하고 싶습니다. 당신이 그것들이 없다면 당신은 할 수 있습니다 :

제어판으로 이동하여 경로를 입력하고 (이는 Windows 7이므로 검색 상자에 있음) "계정의 환경 변수 편집"을 클릭하십시오. 이제 상단에 "사용자 변수"와 아래 "시스템 변수"가있는 환경 변수 대화 상자가 나타납니다.

사용자는 상단 "새로 만들기"버튼을 클릭하고 다음을 추가 할 수 있습니다.

변수 이름 : PATH
변수 값 : C : \ Python27

(공백 없음)을 클릭하고 확인을 클릭하십시오. 명령 프롬프트가 다시 시작되면 사용자 변수의 모든 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

시스템 변수를 변경해야합니다
- "내 컴퓨터"를 마우스 오른쪽 버튼으로 클릭하십시오
- "속성"을
클릭하십시오
- 측면 패널에서 "고급 시스템 설정"을 클릭하십시오-환경 변수를 클릭하십시오-두 섹션의 사용자가 있습니다 변수 및 시스템 변수
- 변수 '경로'에 대한 시스템 변수 섹션 검색에서 편집을 클릭하고 추가
"C:\Python27;"그것을 저장 (따옴표없이)
- 이제 개방 명령 줄 유형 '경로'는 경로 변수가 수정되었습니다 볼 수 Enter 키를 누르십시오
- 이제 python --version파이썬 버전을 볼 수 있습니다

그리고 그것은 끝났습니다


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보십시오

이것을 다시 읽으면 유료 실링처럼 들리지만 나는 맹세합니다. 그것은 내 툴킷에서 가장 유용한 유틸리티 중 하나였으며 아무도 그것에 대해 알지 못하는 것에 놀랐습니다.


3

필자의 경우 ArcGIS 10.1과 같은 다른 프로그램과 함께 Python을 설치 한 경우 환경 변수에서 python.exe로 연결되는 추가 폴더도 포함해야합니다.

내 환경 변수는 다음과 같습니다.

시스템 변수> 경로> 추가 ;C:\Python27\ArcGIS10.1


2

이 질문은 꽤 오래되었지만 방금 비슷한 문제가 발생하여 특정 솔루션이 여기에 나열되지 않았습니다.

PATH에 존재하지 않는 폴더가 없는지 확인하십시오.

내 경우, 나는 기본 폴더 (윈도우, 파워 쉘, SQL 서버, 등)의 무리를 한 다음 사용자 지정 C:\binI 일반적으로 사용하고 다양한 비틀기가 좋아하는 c:\python17등, 그것은 cmd를 프로세서가 발견 된 것으로 나타났다 c:\bin하셨습니까을 존재하지 않고 나머지 변수 처리를 중지했습니다.

또한, 나는 PATH manager 없이 이것을 알았을 것 입니다. 해당 항목이 잘못되었다는 사실을 잘 강조했습니다.


2

방금 "PATH에 python 추가"옵션을 사용하여 Windows 7에 Python 3.3을 설치했습니다.

PATH 변수에서 설치 프로그램이 자동으로 추가 된 최종 백 슬래시 : C:\Python33\ 그래서 그것은 작동하지 않았다 (내가 프롬프트를 여러 번 개방 / 폐쇄 시도) 프롬프트 명령에를

마지막 백 슬래시를 제거한 다음 작동했습니다.C:\Python33

팁 # 4 주셔서 감사합니다 Ram Narasimhan!


2

cmd를 사용하여 Win7 64 비트에서 파이썬 환경 변수를 다음과 같이 구성했습니다.

PYTHONPATHWindows의 환경 변수 메뉴를 통해 변수 를 설정하고 변수에 추가 %PYTHONPATH%했습니다 PATH.

...;%PYTHONPATH%

cmd 쉘은 변수를 다음과 같이 올바르게 확장합니다.

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

PATH 변경 후 cmd 쉘을 다시 시작하는 것을 잊지 마십시오.


0

명령 프롬프트에 작성하십시오.

set Path=%path%

Python 폴더의 경로로 % path %를 대체하십시오.

set Path=C:/Python27

-2

파이썬의 경로를 설정하여 좌절했다면 새로운 버전의 파이썬을 다운로드하십시오. 이전 버전의 파이썬을 제거하고 새 버전을 설치하는 동안 경로 마크를 설정하고 설치할지 묻습니다

가장 좋은 방법

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.