การเพิ่ม Python Path บน Windows 7


138

ฉันพยายามเพิ่มเส้นทาง Python ไปยังบรรทัดคำสั่งบน Windows 7 แต่ไม่ว่าฉันจะลองวิธีการแบบไหน ฉันใช้setคำสั่งฉันได้ลองเพิ่มคำสั่งผ่านทางตัวแปรแก้ไขสภาพแวดล้อม

ยิ่งไปกว่านั้นถ้าฉันรันคำสั่ง set บนบรรทัดคำสั่งมันจะแสดงรายการนี้

python = c:\python27

แต่มันก็ยังไม่รู้จักคำสั่ง Python

อ่านเอกสารและแหล่งข้อมูลอื่น ๆ ดูเหมือนจะไม่ช่วย

แก้ไข: เพื่อเพิ่มความกระจ่างเพิ่มเติมฉันได้ผนวกเส้นทางของ Python ที่สามารถเรียกใช้งานได้กับ PATH ในพรอมต์สภาพแวดล้อมการแก้ไข ดูเหมือนจะไม่ทำงาน


ความสามารถในการปฏิบัติการอยู่ในไดเรกทอรีนั้นหรือไม่? ไม่มีไดเร็กทอรี bin อยู่หรือไม่?
Anirudh Ramanathan

@ anirudh4444 ไม่มีในไดเรกทอรีที่ ...
rogerklutz

คุณสามารถรับทั้งสองGUIและCommand Lineตัวเลือกจากที่นี่stackoverflow.com/a/38141751/5409601
Rafayet Ullah

แม้ว่าคุณจะไม่สามารถใช้งานได้ แต่ด้วย Python 3.6 Windows Installer (และรุ่นก่อนหน้านี้) คุณสามารถเลือกที่จะ "ปรับแต่ง" การติดตั้งของคุณและมีช่องทำเครื่องหมายเพื่อเพิ่ม Python ให้กับเส้นทางของคุณ
paulhauner

คำตอบ:


266
  1. การจองและกดWinPause
  2. คลิกการตั้งค่าระบบขั้นสูง
  3. คลิกตัวแปรสภาพแวดล้อม
  4. ผนวก;C:\python27กับPathตัวแปร
  5. รีสตาร์ทพร้อมท์คำสั่ง

2
ใช่ฉันทำไปแล้ว ขออภัยถ้าฉันไม่ได้ทำที่ชัดเจนในคำถามเดิม
rogerklutz

11
ตรวจสอบให้แน่ใจว่าคุณไม่มีช่องว่างในไพ ธ อนและตัวแปรพา ธ
Yossi

4
@rogerklutz: ตรวจสอบให้แน่ใจว่าคุณกำลังเพิ่ม "; C: \ python27" ในตัวแปร PATH ที่มีอยู่แล้วและไม่สร้างตัวแปรใหม่ที่มี "C: \ python27" เป็นค่า
wassimans

5
ในหลายกรณีคุณต้องออกจากระบบและกลับเข้ามาใหม่หลังจากตั้งค่าตัวแปรพา ธ
dk123

ทุกข์ทรมานจากปัญหาที่คล้ายกันได้ทำทุกอย่างยกเว้นขั้นตอนที่ 5 ... ขอบคุณที่รวมสิ่งนั้น
ReiMasuro

112

เมื่อตั้งค่าตัวแปรสภาพแวดล้อมใน Windows ฉันทำผิดพลาดหลายครั้งหลายครั้ง ฉันคิดว่าฉันควรจะแบ่งปันความผิดพลาดในอดีตของฉันที่นี่โดยหวังว่ามันจะช่วยคน (สิ่งเหล่านี้นำไปใช้กับตัวแปรสภาพแวดล้อมทั้งหมดไม่ใช่เฉพาะเมื่อตั้งค่าเส้นทาง Python)

ระวังข้อผิดพลาดที่เป็นไปได้เหล่านี้:

  1. ฆ่าและเปิดหน้าต่างเชลล์ของคุณอีกครั้ง: เมื่อคุณทำการเปลี่ยนแปลงตัวแปรสิ่งแวดล้อมคุณต้องรีสตาร์ทหน้าต่างที่คุณกำลังทดสอบ
  2. NO SPACESเมื่อตั้งค่าตัวแปร ตรวจสอบให้แน่ใจว่าคุณกำลังเพิ่ม;C:\Python27ไม่มีช่องว่างใด ๆ (เป็นเรื่องปกติที่จะลองใช้C:\SomeOther; C:\Python27พื้นที่นั้น (␣) หลังจากอัฒภาคไม่โอเค)
  3. ใช้BACKWARD SLASHเมื่อสะกดเส้นทางของคุณเต็ม คุณจะเห็นเครื่องหมายทับซ้ายเมื่อคุณพยายามecho $PATHแต่มีเครื่องหมายทับด้านหลังใช้ได้สำหรับฉันเท่านั้น
  4. ไม่เพิ่มเครื่องหมายสุดท้าย C:\Python27ไม่เพียงเท่านั้นC:\Python27\

หวังว่านี่จะช่วยใครซักคน


1
เหตุผลที่ฉันเลือกคำตอบนี้ก็คือส่วนใหญ่เวลา PATH นั้นเสียเพราะหนึ่งในสี่สิ่งนี้ ส่วนที่ง่ายคือการทำอย่างถูกต้องส่วนที่ยากคือการสังเกตเมื่อคุณทำผิด!
grettke

1
คำสั่งecho $pathจะใช้ได้เฉพาะเมื่อคุณใช้ bash shell ใต้ windows (เช่น MinGW) คำสั่งพรอมต์คำสั่ง windows คือecho %path%
Bruce Peterson

2
ฉันไม่พบฟันเฟืองที่ต่อท้ายว่าเป็นปัญหา ฉันพลาดอะไรไปรึเปล่า?
mystrdat

51

เปิดcmd .exe พร้อมสิทธิ์ของผู้ดูแลระบบ (คลิกขวาที่แอป) จากนั้นพิมพ์:

เส้นทางsetx "% path%; C: \ Python27;"

อย่าลืมปิดด้วยเครื่องหมายอัฒภาคและอย่ารวมเครื่องหมายทับ


3
+ 1- สิ่งนี้ช่วยให้คุณเพิ่มเส้นทางโดยไม่ต้องมีสิทธิ์ผู้ดูแลระบบ อย่างไรก็ตามฉันไม่แน่ใจว่าจำเป็นต้องมี% path% หรือไม่ บนระบบ Windows 7 ของฉันหน้าต่าง cmd ใหม่ตอนนี้มีเส้นทางก่อนหน้าสองชุด
Paul Lynch

32

ฉันมีปัญหากับสิ่งนี้มาเป็นเวลานาน ฉันเพิ่มลงในเส้นทางของฉันในทุก ๆ วิธีที่ฉันสามารถคิดได้ แต่นี่คือสิ่งที่ได้ผลที่สุดสำหรับฉัน:

  1. คลิกขวาที่ "My Computer"
  2. คลิก "คุณสมบัติ"
  3. คลิก "การตั้งค่าระบบขั้นสูง" ในแผงด้านข้าง
  4. คลิก "ตัวแปรสภาพแวดล้อม"
  5. คลิกที่ "ใหม่" ด้านล่างตัวแปรระบบ
  6. ในชื่อป้อน pythonexe (หรืออะไรก็ได้ที่คุณต้องการ)
  7. ในมูลค่าป้อนเส้นทางไปยังหลามของคุณ (ตัวอย่าง:C:\Python32\ )
  8. ตอนนี้แก้ไขตัวแปร Path (ในส่วนของระบบ) และเพิ่ม%pythonexe%;ที่ส่วนท้ายของสิ่งที่มีอยู่แล้ว

IDK เหตุใดจึงใช้งานได้ แต่ทำเพื่อฉัน

จากนั้นลองพิมพ์ "python" ในบรรทัดคำสั่งของคุณแล้วใช้งานได้!


แก้ไข:

เมื่อเร็ว ๆ นี้ฉันใช้โปรแกรมนี้ซึ่งทำงานได้ดี นอกจากนี้ยังมีอันนี้ซึ่งดูดีเหมือนกัน แต่ฉันไม่เคยลองเลย



14

คุณสามารถตั้งค่าเส้นทางจากหน้าต่าง cmd ปัจจุบันโดยใช้PATH =คำสั่ง ที่จะเพิ่มสำหรับอินสแตนซ์ cmd ปัจจุบันเท่านั้น หากคุณต้องการเพิ่มอย่างถาวรคุณควรเพิ่มลงในตัวแปรระบบ (คอมพิวเตอร์> การตั้งค่าระบบขั้นสูง> ตัวแปรสภาพแวดล้อม)

PATH=C:/Python27/;%PATH%คุณจะข้ามไปเช่นคำสั่งของคุณและใส่ใน


วิธีนี้ใช้ได้กับฉันใน Win7 Pro echo %PATH~%ทดสอบกับ
อิกอร์

11

ตรวจสอบให้แน่ใจว่าคุณไม่ได้เพิ่มช่องว่างหน้าไดเรกทอรีใหม่

ดี: เก่าเก่าเก่าใหม่

ไม่ดี: แก่แล้วแก่ชราแก่ชรา ใหม่


9

งูใหญ่มาพร้อมกับยูทิลิตี้ขนาดเล็กที่ไม่เพียงแค่นี้ จากการเรียกใช้บรรทัดคำสั่ง:

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

ตรวจสอบให้แน่ใจว่าคุณปิดหน้าต่างคำสั่ง (ด้วยexitหรือปุ่มปิด) แล้วเปิดอีกครั้ง


1
สำหรับฉันมันเปลี่ยนแปลงการลงทะเบียน แต่ไม่มีแอพใดที่จะได้รับผลกระทบจนกว่าคุณจะยืนยันการเปลี่ยนแปลงด้วยตนเองผ่านทางกล่องโต้ตอบ std GUI การเริ่มแอพใหม่ไม่ได้ช่วยอะไร ดูเหมือนว่าจำเป็นต้องมีการแพร่ภาพด้วย
Pavel Vlasov

สิ่งนี้ใช้ได้กับฉันใน 8.1 และดูเหมือนง่ายกว่าวิธีอื่น ๆ หน้าต่าง / กล่องเปิดขึ้นและถามสิ่งที่คุณต้องการเรียกใช้ เลือกอื่น ๆ จากนั้นนำทางกลับไปที่ c: \ python27 และเลือกไฟล์ปฏิบัติการที่ไพ ธ อน (.exe) เอฟเฟกต์ดูเหมือนจะเป็นแบบถาวรดังนั้นคุณต้องทำเช่นนั้นเพียงครั้งเดียว คุณจะต้องเรียกใช้ win_add2path.py สำหรับผู้ใช้ทุกคน แต่คุณจะไม่ได้รับกล่องหลังจากครั้งแรก
user2099484

8

โปรแกรมต่อไปนี้จะเพิ่มเส้นทางปฏิบัติการของไพ ธ อนและสคริปต์ย่อย (ซึ่งเป็นตำแหน่งที่มีการติดตั้งเช่น pip และ easy_install) ให้กับสภาพแวดล้อมของคุณ ค้นหาเส้นทางไปยัง python ที่เรียกใช้งานได้จากรีจิสตรีคีย์ผูกส่วนขยาย. py มันจะลบเส้นทางของหลามเก่าในสภาพแวดล้อมของคุณ ทำงานร่วมกับ 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)

สิ่งนี้ทำลายเส้นทางของฉัน นี่เป็นรุ่นที่แก้ไขแล้ว (ฉันลบ remove_old ซึ่งเป็นไปไม่ได้ * เพื่อให้ถูกต้อง): gist.github.com/anonymous/fb5d176ab91dccbd0ebd * ใช่
Aur Saraf

6

ฉันรู้ว่าโพสต์นี้เก่า แต่ฉันต้องการเพิ่มว่าวิธีแก้ปัญหาถือว่าเป็นผู้ดูแลระบบ privs หากคุณไม่มีสิ่งเหล่านี้คุณสามารถ:

ไปที่แผงควบคุมพิมพ์พา ธ (นี่คือ Windows 7 ในขณะนี้เพื่ออยู่ในกล่องค้นหา) และคลิก "แก้ไขตัวแปรสภาพแวดล้อมสำหรับบัญชีของคุณ" ตอนนี้คุณจะเห็นกล่องโต้ตอบตัวแปรสภาพแวดล้อมด้วย "ตัวแปรผู้ใช้" ที่ด้านบนและ "ตัวแปรระบบ" ด้านล่าง

คุณสามารถคลิกปุ่ม "ใหม่" ด้านบนและเพิ่ม:

ชื่อตัวแปร: PATH
ค่าตัวแปร: C: \ Python27

(ไม่มีช่องว่าง) และคลิกตกลง เมื่อเริ่มต้นพรอมต์คำสั่งของคุณใหม่ใด ๆ ของเส้นทางในตัวแปรผู้ใช้จะถูกผนวกเข้ากับส่วนท้ายของเส้นทางของระบบ ไม่ได้แทนที่ 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

คุณต้องทำการเปลี่ยนแปลงตัวแปรระบบของคุณ
- คลิกขวาที่ "My computer"
- คลิก "Properties"
- คลิก "Advanced system settings" ในแผงด้านข้าง
- คลิกที่ตัวแปรสภาพแวดล้อม - คุณจะมีสองส่วนของผู้ใช้ ตัวแปรและตัวแปรระบบ
- ภายใต้การค้นหาส่วนระบบตัวแปรสำหรับตัวแปร 'เส้นทาง' คลิกที่แก้ไขและเพิ่ม
"C:\Python27;"(โดยไม่ใส่เครื่องหมายอัญประกาศ) บันทึกไว้
- ตอนนี้เปิด 'บรรทัด' พิมพ์บรรทัดคำสั่ง 'เส้นทาง' กด Enter คุณจะเห็นตัวแปรเส้นทางได้รับการแก้ไข
- ตอนนี้พิมพ์python --versionคุณจะเห็นเวอร์ชันของ python

และมันก็ทำ


5

สำหรับผู้ที่พยายามใช้ Python 3.3+ ตอนนี้ตัวติดตั้ง Windows จะมีตัวเลือกในการเพิ่ม python.exe ในเส้นทางการค้นหาระบบ อ่านเพิ่มเติมในเอกสาร


1
นี่คือสิ่งที่ฉันใช้เพราะฉันมีปัญหาในการค้นหาเส้นทางที่แน่นอนของการติดตั้ง เริ่มโปรแกรมติดตั้งกด 'แก้ไข' และจากนั้นในคุณสมบัติตัวเลือกคลิกถัดไปจากนั้นทำเครื่องหมายที่กล่องเพื่อเพิ่ม Python ในเส้นทางของระบบและกด Finish
Rishi

4

การทำงานกับตัวแปรสภาพแวดล้อมของ Windows เป็นประสบการณ์ที่น่ากลัวเสมอ เมื่อเร็ว ๆ นี้ฉันพบเครื่องมือที่น่าอัศจรรย์ที่เรียกว่า Rapid Environment Editor ซึ่งให้ GUI ที่ง่ายสุด ๆ สำหรับจัดการพวกเขา

ถ้าคุณใช้ chocolatey choco install rapideeคุณสามารถติดตั้งได้โดยใช้ หรือดูที่http://www.rapidee.com/en/download

อ่านอีกครั้งนี้ดูเหมือนว่าจะเป็นหน้าม้าจ่าย แต่ฉันสาบานว่าฉันไม่ได้! เป็นเพียงหนึ่งในเครื่องมือที่มีประโยชน์มากที่สุดในชุดเครื่องมือของฉันอยู่พักหนึ่งและฉันก็แปลกใจที่ไม่มีใครรู้เรื่องนี้เลย


3

ถ้า Python ได้รับการติดตั้งด้วยโปรแกรมอื่นเช่น ArcGIS 10.1 ในกรณีของฉันคุณจะต้องรวมโฟลเดอร์พิเศษใด ๆ ที่พา ธ ไปยัง python.exe ในตัวแปรสภาพแวดล้อมของคุณ

ดังนั้นตัวแปรสภาพแวดล้อมของฉันมีลักษณะดังนี้:

ตัวแปรระบบ> เส้นทาง> เพิ่ม ;C:\Python27\ArcGIS10.1


2

คำถามนี้ค่อนข้างเก่า แต่ฉันเพิ่งพบปัญหาที่คล้ายกันและวิธีแก้ไขปัญหาเฉพาะของฉันไม่อยู่ในรายการ:

ตรวจสอบให้แน่ใจว่าคุณไม่มีโฟลเดอร์ใน PATH ที่ไม่มีอยู่

ในกรณีของฉันฉันมีพวงของโฟลเดอร์เริ่มต้น (Windows, Powershell, SQL Server, ฯลฯ ) และจากนั้นเองC:\binที่ผมมักจะใช้และจากนั้นการปรับแต่งอื่น ๆ เช่นc:\python17ฯลฯ แต่กลับกลายเป็นว่าหน่วยประมวลผลคำสั่งที่ถูกพบว่าc:\bindidn ไม่มีอยู่แล้วหยุดการประมวลผลตัวแปรที่เหลือ

นอกจากนี้ผมไม่ทราบว่าผมจะเคยได้สังเกตเห็นนี้โดยผู้จัดการเส้นทาง มันเน้นความจริงที่ว่ารายการนั้นไม่ถูกต้อง


2

ฉันเพิ่งติดตั้ง Python 3.3 บน Windows 7 โดยใช้ตัวเลือก "เพิ่ม python ใน PATH"

ในตัวแปร PATH ตัวติดตั้งจะเพิ่มแบ็กสแลชสุดท้าย : โดยอัตโนมัติC:\Python33\ ดังนั้นมันจึงไม่สามารถใช้งานได้บน command prompt (ฉันลองปิด / เปิดพรอมต์หลายครั้ง)

ฉันลบแบ็กสแลชสุดท้ายออกจากนั้นจึงทำงาน:C:\Python33

ขอบคุณ Ram Narasimhan สำหรับเคล็ดลับของคุณ # 4!


2

ฉันจัดระเบียบตัวแปรสภาพแวดล้อมของหลามแบบนี้ภายใต้ Win7 64-bit โดยใช้ cmd

ฉันตั้งค่าตัวแปรPYTHONPATHผ่าน menue ตัวแปรสภาพแวดล้อมของ windows และเพิ่มลง%PYTHONPATH%ในPATHตัวแปร:

...;%PYTHONPATH%

เชลล์ cmd ขยายตัวแปรอย่างถูกต้องถึงสิ่งนี้:

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

อย่าลืมรีสตาร์ท cmd shell หลังจากเปลี่ยน PATH


0

เขียนสิ่งนั้นบนพรอมต์คำสั่งของคุณ:

set Path=%path%

แทนที่% path% ด้วย Path ของตัวอย่างโฟลเดอร์ Python ของคุณ:

set Path=C:/Python27

-2

หากคุณมีความผิดหวังด้วยการตั้งค่าพา ธ สำหรับไพ ธ อนเพียงดาวน์โหลดเวอร์ชันใหม่ของไพ ธ อนถอนการติดตั้งเวอร์ชันเก่าของไพ ธ อนและในขณะที่ติดตั้งเวอร์ชันใหม่มันจะถามว่าจะตั้งเครื่องหมายพา ธ นั้นหรือไม่

มันเป็นวิธีที่ดีที่สุด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.