Thêm đường dẫn Python trên Windows 7


138

Tôi đã cố gắng thêm đường dẫn Python vào dòng lệnh trên Windows 7, nhưng cho dù phương pháp tôi thử, dường như không có gì hoạt động. Tôi đã sử dụng setlệnh, tôi đã thử thêm nó thông qua lời nhắc Chỉnh sửa biến môi trường, v.v.

Hơn nữa nếu tôi chạy lệnh set trên dòng lệnh thì nó liệt kê cái này

python = c:\python27

Tuy nhiên, nó vẫn không nhận ra lệnh Python.

Đọc tài liệu và nhiều nguồn khác dường như không có ích.

Chỉnh sửa: Chỉ để làm rõ hơn, tôi đã nối đường dẫn của Python có thể thực thi vào PATH trong lời nhắc môi trường chỉnh sửa. Dường như không hoạt động.


Liệu thực thi nằm trong thư mục đó? Không có một số thư mục bin trong đó?
Anirudh Ramanathan

@ anirudh4444 Không, trong thư mục đó ...
rogerklutz

Bạn có thể nhận cả hai GUICommand Linetùy chọn từ đây stackoverflow.com/a/38141751/5409601
Rafayet Ullah

Mặc dù không hợp lệ với bạn, với Trình cài đặt Windows Python Python 3.6 (và các phiên bản có khả năng cũ hơn), bạn có thể chọn "Tùy chỉnh" cài đặt của mình và có một hộp kiểm để thêm Python vào đường dẫn của bạn.
paulhauner

Câu trả lời:


266
  1. Giữ Winvà nhấn Pause.
  2. Nhấp vào Cài đặt hệ thống nâng cao.
  3. Nhấp vào Biến môi trường.
  4. Nối ;C:\python27vào Pathbiến.
  5. Khởi động lại lệnh Nhắc.

2
Vâng, tôi đã làm điều đó. Xin lỗi nếu tôi không làm rõ hơn trong câu hỏi ban đầu
rogerklutz

11
Đảm bảo rằng bạn không có bất kỳ khoảng trắng nào trong các biến python và path.
Yossi

4
@rogerklutz: Chỉ cần đảm bảo rằng bạn đang thêm "; C: \ python27" vào biến PATH đã tồn tại và không tạo biến mới với "C: \ python27" làm giá trị.
wassimans

5
Trong nhiều trường hợp, bạn cũng phải đăng xuất và đăng nhập lại sau khi đặt biến Đường dẫn.
dk123

Bị một vấn đề tương tự, đã làm mọi thứ trừ bước 5 ... Cảm ơn bạn đã bao gồm điều đó.
ReiMasuro

112

Khi cài đặt Biến môi trường trong Windows, tôi đã gặp nhiều lỗi. Tôi nghĩ rằng tôi nên chia sẻ một vài sai lầm trong quá khứ của tôi ở đây với hy vọng rằng nó có thể giúp được ai đó. (Chúng áp dụng cho tất cả các Biến môi trường, không chỉ khi thiết lập Đường dẫn Python)

Cảnh giác với những sai lầm có thể xảy ra:

  1. Giết và mở lại cửa sổ shell của bạn: Khi bạn thực hiện thay đổi đối với Biến MÔI TRƯỜNG, bạn phải khởi động lại cửa sổ mà bạn đang kiểm tra.
  2. KHÔNG CÓ SPACES khi đặt Biến. Hãy chắc chắn rằng bạn đang thêm ;C:\Python27KHÔNG CÓ khoảng trắng nào. (Thường dùng thử C:\SomeOther; C:\Python27Không gian đó (␣) sau dấu chấm phẩy không ổn.)
  3. SỬ DỤNG MỘT RÚT BACKWARD khi đánh vần đầy đủ đường dẫn của bạn. Bạn sẽ thấy dấu gạch chéo về phía trước khi bạn thử echo $PATHnhưng chỉ có dấu gạch chéo ngược mới có tác dụng với tôi.
  4. KHÔNG thêm một dấu gạch chéo cuối cùng . Chỉ C:\Python27KHÔNGC:\Python27\

Hy vọng điều này sẽ giúp được ai đó.


1
Lý do mà tôi chọn câu trả lời này là vì hầu hết thời gian PATH bị hỏng vì một trong 4 điều này. Phần dễ làm là chính xác, phần khó nhận thấy khi bạn làm sai!
grettke

1
Lệnh echo $pathchỉ có hiệu lực nếu bạn đang chạy bash shell dưới windows (ví dụ: MinGW). Lệnh nhắc lệnh windows làecho %path%
Bruce Peterson

2
Tôi đã không tìm thấy phản ứng dữ dội kéo dài là có vấn đề. Tui bỏ lỡ điều gì vậy?
mystrdat

51

Mở cmd .exe với quyền quản trị viên (nhấp chuột phải vào ứng dụng). Sau đó gõ:

đường dẫn setx "% path%; C: \ Python27;"

Hãy nhớ kết thúc bằng dấu chấm phẩy và không bao gồm dấu gạch chéo.


3
+ 1- Điều này cho phép bạn thêm vào đường dẫn mà không cần quyền quản trị viên. Tuy nhiên, tôi không chắc chắn% path% là cần thiết. Trên hệ thống Windows 7 của tôi, các cửa sổ cmd mới hiện có hai bản sao của các đường dẫn trước đó.
Paul Lynch

32

Tôi đã có một vấn đề với điều này trong một thời gian dài. Tôi đã thêm nó vào con đường của mình theo mọi cách tôi có thể nghĩ ra nhưng đây là những gì cuối cùng đã làm cho tôi:

  1. Nhấp chuột phải vào "Máy tính của tôi"
  2. Nhấp vào "Thuộc tính"
  3. Nhấp vào "Cài đặt hệ thống nâng cao" trong bảng điều khiển bên
  4. Nhấp vào "Biến môi trường"
  5. Nhấp vào "Mới" bên dưới các biến hệ thống
  6. trong tên nhậppythonexe (hoặc bất cứ điều gì bạn muốn)
  7. trong giá trị, nhập đường dẫn đến python của bạn (ví dụ C:\Python32\:)
  8. Bây giờ hãy chỉnh sửa biến Đường dẫn (trong phần hệ thống) và thêm %pythonexe%;vào cuối những gì đã có

IDK tại sao điều này làm việc nhưng nó đã làm cho tôi.

sau đó thử gõ "python" vào dòng lệnh của bạn và nó sẽ hoạt động!


Biên tập:

Gần đây tôi đã sử dụng chương trình này có vẻ hoạt động khá tốt. Cũng có cái này trông cũng khá đẹp, mặc dù tôi chưa bao giờ thử nó.



14

Bạn có thể đặt đường dẫn từ cửa sổ cmd hiện tại bằng PATH =lệnh. Điều đó sẽ chỉ thêm nó cho ví dụ cmd hiện tại. nếu bạn muốn thêm nó vĩnh viễn, bạn nên thêm nó vào các biến hệ thống. (Máy tính> Cài đặt hệ thống nâng cao> Biến môi trường)

Bạn sẽ lấy ví dụ cmd của bạn, và đưa vào PATH=C:/Python27/;%PATH%.


Giải pháp này hiệu quả với tôi trên Win7 Pro. Đã thử nghiệm với echo %PATH~%.
Igor

11

Hãy chắc chắn rằng bạn không thêm một khoảng trắng trước thư mục mới.

Tốt: cũ, cũ, cũ; mới

Xấu: cũ, cũ; cũ; Mới


9

Python đi kèm với một tiện ích nhỏ thực hiện điều này . Từ dòng lệnh chạy:

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

Đảm bảo bạn đóng cửa sổ lệnh (có exithoặc nút đóng) và mở lại.


1
Đối với tôi, nó thay đổi đăng ký nhưng không có ứng dụng nào bị ảnh hưởng cho đến khi bạn xác nhận thủ công các thay đổi thông qua hộp thoại GUI std. Khởi động lại một ứng dụng không giúp được gì. Có vẻ như một loại phát sóng cũng cần thiết.
Pavel Vlasov

Điều này làm việc cho tôi trên 8.1 và có vẻ dễ dàng hơn các phương pháp khác. Một cửa sổ / hộp mở ra và hỏi bạn muốn chạy gì. Chọn Khác và sau đó điều hướng quay lại c: \ python27 và chọn python thực thi (.exe). Hiệu ứng có vẻ là vĩnh viễn vì vậy bạn chỉ cần làm điều đó một lần. Bạn sẽ cần chạy win_add2path.py cho mọi người dùng nhưng bạn không nhận được hộp sau lần đầu tiên.
dùng2099484

8

Chương trình sau đây sẽ thêm đường dẫn thực thi python và Tập lệnh con (đó là nơi ví dụ pip và easy_install được cài đặt) vào môi trường của bạn. Nó tìm thấy đường dẫn đến python có thể thực thi được từ khóa registry ràng buộc phần mở rộng .py. Nó sẽ loại bỏ các đường dẫn trăn cũ trong môi trường của bạn. Hoạt động với XP (và có lẽ cả Vista). Nó chỉ sử dụng các mô-đun đi kèm với trình cài đặt windows cơ bản.

# 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ều này làm hỏng PATH của tôi. Đây là phiên bản cố định (tôi cũng đã xóa remove_old, không thể * đúng): gist.github.com/anonymous/fb5d176ab91dccbd0ebd * có
Aur Saraf

6

Tôi biết bài đăng này đã cũ nhưng tôi muốn thêm rằng các giải pháp giả định quyền riêng tư của quản trị viên. Nếu bạn không có những thứ đó bạn có thể:

Chuyển đến bảng điều khiển, nhập đường dẫn (đây là Windows 7 ngay bây giờ để trong hộp Tìm kiếm) và nhấp vào "Chỉnh sửa biến môi trường cho tài khoản của bạn". Bây giờ bạn sẽ thấy hộp thoại Biến môi trường với "Biến người dùng" ở trên cùng và "Biến hệ thống" bên dưới.

Bạn có thể, với tư cách là người dùng, nhấp vào nút "Mới" trên cùng và thêm:

Tên biến: PATH
Giá trị biến: C: \ Python27

(không có chỗ trống ở bất cứ đâu) và nhấn OK. Khi dấu nhắc lệnh của bạn được khởi động lại, bất kỳ PATH nào trong các biến Người dùng sẽ được thêm vào cuối Đường dẫn hệ thống. Nó không thay thế PATH theo bất kỳ cách nào khác.

Nếu bạn muốn thiết lập một đường dẫn đầy đủ cụ thể, tốt hơn hết bạn nên tạo một tệp bó như thế này:

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

Gọi nó là "Trình biên dịch.bat" hoặc bất cứ điều gì và nhấp đúp chuột để bắt đầu nó. Hoặc liên kết với nó. Hoặc ghim nó vv ...


6

Bạn cần thực hiện thay đổi trong biến hệ thống của mình
- Nhấp chuột phải vào "Máy tính của tôi"
- Nhấp vào "Thuộc tính"
- Nhấp vào "Cài đặt hệ thống nâng cao" trong bảng điều khiển bên
- Nhấp vào Biến môi trường - Bạn sẽ có hai phần của người dùng biến và biến hệ thống
- Trong phần tìm kiếm biến hệ thống cho biến 'Đường dẫn', nhấp vào chỉnh sửa và thêm
"C:\Python27;"(không có dấu ngoặc kép) lưu nó
- Bây giờ, hãy mở loại dòng lệnh 'path', bạn sẽ thấy biến đường dẫn đã được sửa đổi
- Bây giờ gõpython --version bạn sẽ thấy phiên bản python

Và nó đã được thực hiện


5

Đối với bất kỳ ai đang cố gắng đạt được điều này với Python 3.3+, trình cài đặt Windows hiện bao gồm một tùy chọn để thêm python.exe vào đường dẫn tìm kiếm hệ thống. Đọc thêm trong các tài liệu .


1
Đây là những gì tôi đã sử dụng, bởi vì tôi gặp khó khăn khi tìm đường dẫn chính xác của cài đặt. Khởi động trình cài đặt, nhấn 'Sửa đổi' và sau đó vào Tính năng tùy chọn, nhấp vào tiếp theo, sau đó chọn hộp để thêm Python vào đường dẫn hệ thống và nhấn Kết thúc.
Rishi

4

Làm việc với các biến môi trường Windows luôn là một trải nghiệm khủng khiếp. Gần đây, tôi tìm thấy một công cụ tuyệt vời có tên Rapid Môi trường soạn thảo, cung cấp một GUI đơn giản khủng khiếp để quản lý chúng.

Nếu bạn sử dụng chocolatey, bạn có thể cài đặt nó bằng cách sử dụng choco install rapidee. Nếu không, hãy xem http://www.rapidee.com/en/doad

Đọc lại bài này, nghe có vẻ như là một sự trả giá, nhưng tôi thề là tôi không! Nó chỉ là một trong những tiện ích hữu ích nhất trong bộ công cụ của tôi trong một thời gian và tôi ngạc nhiên dường như không ai biết về nó.


3

Nếu Python đã được cài đặt với một chương trình khác, chẳng hạn như ArcGIS 10.1 trong trường hợp của tôi, thì bạn cũng phải bao gồm bất kỳ thư mục bổ sung nào dẫn đến python.exe trong Biến môi trường của bạn.

Vì vậy, Biến môi trường của tôi trông như thế này:

Biến hệ thống> Đường dẫn> thêm ;C:\Python27\ArcGIS10.1


2

Câu hỏi này khá cũ, nhưng tôi vừa gặp phải một vấn đề tương tự và giải pháp cụ thể của tôi không được liệt kê ở đây:

Hãy chắc chắn rằng bạn không có một thư mục trong PATH của bạn không tồn tại.

Trong trường hợp của tôi, tôi đã có một loạt các thư mục mặc định (Windows, Powershell, Sql Server, v.v.) và sau đó là một tùy chỉnh C:\binmà tôi thường sử dụng, và sau đó nhiều chỉnh sửa khác như c:\python17, v.v. Hóa ra bộ xử lý cmd đã tìm thấyc:\bin didn Không tồn tại và sau đó dừng xử lý phần còn lại của biến.

Ngoài ra, tôi không biết rằng tôi đã từng nhận thấy điều này nếu không có người quản lý PATH . Nó đặc biệt nhấn mạnh thực tế rằng mặt hàng đó là không hợp lệ.


2

Tôi vừa cài đặt Python 3.3 trên Windows 7 bằng tùy chọn "thêm python vào PATH".

Trong biến PATH, trình cài đặt tự động thêm một dấu gạch chéo ngược cuối cùng : C:\Python33\ và do đó, nó không hoạt động trên dấu nhắc lệnh (tôi đã thử đóng / mở dấu nhắc nhiều lần)

Tôi đã xóa dấu gạch chéo ngược cuối cùng và sau đó nó hoạt động:C:\Python33

Cảm ơn Ram Narasimhan cho mẹo số 4 của bạn!


2

Tôi đã tổ chức biến môi trường python của mình như thế này trong Win7 64-bit bằng cmd.

Tôi đặt biến PYTHONPATHqua biến môi trường menue của cửa sổ và thêm %PYTHONPATH%vào PATHbiến:

...;%PYTHONPATH%

Shell cmd mở rộng biến chính xác cho điều này:

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

Đừng quên khởi động lại cmd shell sau khi thay đổi PATH.


0

viết nó trên Dấu nhắc lệnh của bạn:

set Path=%path%

Thay thế% path% bằng Đường dẫn của Thư mục Python của bạn Ví dụ:

set Path=C:/Python27

-2

Nếu bạn đã nản lòng bằng cách đặt đường dẫn cho python, chỉ cần tải xuống phiên bản mới của python gỡ cài đặt phiên bản cũ của python và trong khi cài đặt phiên bản mới, nó sẽ hỏi liệu có nên đặt dấu đường dẫn đó không và cài đặt

cách tốt nhất của nó

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.