Làm cách nào để chạy mã Python từ Sublime Text 2?


309

Tôi muốn thiết lập một IDE Python hoàn chỉnh trong Sublime Text 2.

Tôi muốn biết làm thế nào để chạy mã Python từ bên trong trình soạn thảo. Được thực hiện bằng cách sử dụng hệ thống xây dựng? Tôi phải làm nó như thế nào ?

Câu trả lời:


372

Công cụ -> Xây dựng hệ thống -> (chọn) Python sau đó:

Chạy:

      Tools -> Build

      -or-

      Ctrl + B

      CMD + B  (OSX)

Điều này sẽ bắt đầu tập tin của bạn trong bảng điều khiển nên ở dưới cùng của trình soạn thảo.

Dừng lại:

       Ctrl + Break or Tools -> Cancel Build

       Fn + C (OSX)

Bạn có thể tìm ra Breakchìa khóa của bạn ở đâu: http://en.wikipedia.org/wiki/Break_key .

Lưu ý: CTRL + Csẽ KHÔNG hoạt động.

Phải làm gì khi Ctrl + Breakkhông hoạt động:

Đi đến:

Tùy chọn -> Ràng buộc chính - Người dùng

và dán dòng dưới đây:

{"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} } 

Bây giờ, bạn có thể sử dụng ctrl+shift+cthay vìCTRL+BREAK


9
văn bản cao siêu cũng có thể "tự động phát hiện" ngôn ngữ. Vì vậy, nó hoạt động với tôi chỉ là CTRL + B
Alexis

4
Hãy chắc chắn rằng pythontrong PATH... trình cài đặt windows của bạn dường như không thực hiện việc này một cách tự động
SeanJA

2
Làm thế nào để bạn ngừng chạy chương trình (python)?
Ib33X

3
Phím break của bàn phím của tôi trông giống như "Tạm dừng / Nghỉ", vì vậy để dừng quá trình tôi cũng đã thêm{"keys": ["pause"], "command": "exec", "args": {"kill": true} }
băng giá

3
Có dòng {"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} }trong các ràng buộc khóa Người dùng và sử dụng ctrl+shift+ccác bản in mà bản dựng đang [Cancelled]trong khi chương trình vẫn đang được chạy.
Devi

56

Trên Mac OS X, lưu tệp của bạn với phần mở rộng .py. Nhấn + B. Nó chạy trong một cửa sổ bên dưới.

nhập mô tả hình ảnh ở đây


55

Chỉnh sửa% APPDATA% \ Văn bản tuyệt vời 2 \ Python \ Python.sublime-build

Thay đổi nội dung thành:

{
    "cmd": ["C:\\python27\\python.exe", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

thay đổi phần "c: \ python27" thành bất kỳ phiên bản python nào bạn có trong hệ thống của mình.


3
Hãy chú ý đến dấu gạch chéo kép trên đường dẫn, Sublime sẽ không nhận ra điều đó!
Enrico

6
Dấu gạch chéo đơn cũng hoạt động thay cho dấu gạch chéo kép trên Windows: "C: /Python27/python.exe" (à la Linux và OSX)
Dylan Hogg

7
Đối với tôi, đường dẫn là% APPDATA% \ Sublime Text 2 \ Gói \ Python \ Python.sublime-build
aultimus

5
Tôi dường như không thấy thư mục Python trong Sublime Text 3
HoKy22

44

Để CHẠY nhấn CtrlB(trả lời bằng matiit )

Nhưng khi CtrlB không hoạt động , Sublime Text có thể không thể tìm thấy Trình thông dịch Python. Khi cố gắng chạy chương trình của bạn, hãy xem nhật ký và tìm tham chiếu đến Python trong đường dẫn.

[cmd:  [u'python', u'-u', u'C:\\scripts\\test.py']]
[path: ...;C:\Python27 32bit;...]

Vấn đề là nó cố chạy python thông qua dòng lệnh, cmd trông giống như:

python -u C:\scripts\test.py

Nếu bạn không thể chạy python từ cmd, Sublime Text cũng không thể.
(Hãy tự thử trong cmd, nhập python vào nó và chạy nó, dòng lệnh python sẽ xuất hiện)

GIẢI PHÁP

Bạn có thể thay đổi công thức xây dựng văn bản tuyệt vời hoặc Hệ thống %PATH%.

  • Để đặt %PATH%:
    * Bạn sẽ cần khởi động lại trình chỉnh sửa của mình để tải mới%PATH%

    • Chạy Dòng lệnh * và nhập lệnh này: * cần được chạy với tư cách quản trị viên
      SETX /M PATH "%PATH%;<python_folder>"
      chẳng hạn:SETX /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts"

    • HOẶC thủ công: (thích hợp hơn)
      Thêm ;C:\Python27;C:\Python27\Scriptsvào cuối chuỗi. Đặt đường dẫn trong Win7

  • Để đặt đường dẫn của trình thông dịch mà không gây rối với Hệ thống, %PATH%hãy xem câu trả lời này bằng ppy .


Xin lỗi nhưng bạn có thể giải thích ý nghĩa của tùy chọn "-u" là gì không? Tôi không thể tìm thấy tùy chọn danh sách của các thông số dòng lệnh để chuyển cùng với python.exe.
Jim Raynor

@JimRaynor đó là luồng không có bộ đệm stackoverflow.com/questions/14258500/significance-of-u-option
Qwerty

9

Bạn có thể sử dụng SublimeREPL (trước tiên bạn cần cài đặt Kiểm soát gói ).


1
Bạn có thể giải thích cách chuyển dữ liệu từ cửa sổ script sang SublimeREPL không, vì nó hoạt động với python, trong khi R hoạt động ...
Matt Bannert

6

Nếu sử dụng python 3.x bạn cần chỉnh sửa Python3.sublime-build

(Tùy chọn> Duyệt gói> Python 3)

trông như thế này:

{
  "path": "/usr/local/bin",
  "cmd": ["python3", "-u", "$file"],
  "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  "selector": "source.python"
}

4

[Điều này áp dụng cho ST3 (Win), không chắc chắn về ST2]

Để có đầu ra hiển thị trong Sublime dưới dạng tệp khác (+ một lỗi), hãy làm điều này:

  1. Tạo một hệ thống xây dựng mới: Tools > Build Systems > New Build System...
  2. Sử dụng cấu hình sau:
    {
        "cmd": ["python.exe", "$ file", "1>", "$ file_name .__ STDOUT __. txt", "2>", "$ file_name .__ STDERR __. txt"],
        "bộ chọn": "source.python",
        "vỏ": đúng,
        "work_dir": "$ file_dir"
    }
  1. Đối với tệp Python của bạn, chọn tệp cấu hình hệ thống xây dựng ở trên: Tools > Build Systems > {your_new_build_system_filename}
  2. ctrl + b
  3. Bây giờ, bên cạnh tệp của bạn, ví dụ: "file.py"bạn sẽ có "file.__STDOUT__.py""file.__STDERR__.py"(nếu có lỗi, nếu có)
  4. Nếu bạn chia cửa sổ thành 3 cột hoặc lưới, bạn sẽ thấy kết quả ngay lập tức mà không cần phải chuyển bảng / cửa sổ

2

Các bạn thật tuyệt, tôi chỉ tìm thấy điều này:

http://ptomato.wordpress.com/2012/02/09/geek-tip-rucky-python-guis-in-sublime-text-2/

Nó giải thích (giống như một trong những câu trả lời ở trên) làm thế nào để chỉnh sửa tệp exec.txt này trong thư mục mặc định .

Tôi gặp vấn đề là ỨNG DỤNG PYTHON UI của tôi sẽ không bắt đầu. Tôi đã nhận xét dòng cuối cùng từ đoạn trích sau:

    # Hide the console window on Windows
    startupinfo = None
    if os.name == "nt":
        startupinfo = subprocess.STARTUPINFO()
        #startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW

và, taaadaaaa, tôi có thể khởi động ứng dụng của mình bằng cách nhấn Ctrl + B. Dù sao thì dòng hài hước, uh? Và một lời cảm ơn lớn cho bất cứ ai đã viết bài báo đó ;-)


Giải quyết vấn đề của tôi quá. Đầu ra của bảng điều khiển đã xuất hiện trong Sublime Text 2, cho thấy mã của tôi đang thực thi, nhưng GUI của tôi không bao giờ xuất hiện. Tôi nhận xét dòng đó, và bây giờ nó có. Đầu ra giao diện điều khiển vẫn đi đến văn bản tuyệt vời. Hoàn hảo!
Jonathan Lidbeck

1

Bạn có thể truy cập bảng điều khiển Python thông qua Chế độ xem / Hiển thị bảng điều khiển của Pháp hoặc Ctrl+ `.


1
nhưng nó hiển thị lỗi sau: Tệp ". \ exec.py", dòng 109, trong tệp Chạy ". \ ntpath.py", dòng 205, trong Tệp dirname ". \ ntpath.py", dòng 170, trong Tệp tách ". \ ntpath.py", dòng 125, trong splitdrive TypeError: đối tượng 'noneType' không thể mô tả được
neo

Vui lòng cung cấp thêm chi tiết (bằng cách mở rộng câu hỏi) về những gì bạn đang làm.
chọc

Tôi chỉ cần nhập mã python như in 'xin chào' và sau đó xây dựng nó và mở giao diện điều khiển để xem lỗi này.
tân

Sử dụng bảng điều khiển Python không trả lời câu hỏi . Trình thông dịch nhúng chỉ nhằm mục đích tương tác với API plugin, không dành cho phát triển chung.
mkenyon

1

Tôi đã giải quyết vấn đề này:

> Preferences –> Browse Packages –> Default 

Mở exec.pytệp, gần dòng 41-42, mã sẽ trông như thế này:

for k, v in proc_env.iteritems():
    proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())

sau đó xóa nó hoặc chỉnh sửa nó như sau:

try:    
    for k, v in proc_env.iteritems():
        proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
except:
    print 'foobar'

nó thực sự làm gì Nó giúp như thế nào?
Qwerty

@Qwerty Anh ấy nghĩ rằng chương trình nên xử lý các trường hợp ngoại lệ nên anh ấy đặt mã thành một trykhối.
CHM

Tôi đã thử điều này. Nó không khắc phục được vấn đề và nó đã phá vỡ hành vi hiện có.
Jonathan Lidbeck

1

Tôi gặp vấn đề tương tự ngày hôm nay. Và đây là cách tôi quản lý để chạy mã python trong Sublime Text 3:

  1. Nhấn Ctrl+ B(cho Mac, + B) để bắt đầu xây dựng hệ thống. Nó sẽ thực thi các tập tin bây giờ.
  2. Thực hiện theo câu trả lời này để hiểu cách tùy chỉnh hệ thống xây dựng.

Những gì bạn cần làm tiếp theo là thay thế các nội dung trong Python.sublime-buildđể

{
    "cmd": ["/usr/local/bin/python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
}

Tất nhiên bạn có thể tùy chỉnh thêm nó thành một cái gì đó phù hợp với bạn.


1

Trong python v3.x bạn nên truy cập : Tools->Build System->New Build System.

Sau đó, nó bật lên cửa sổ không có tiêu đề.sublime-build trong trình soạn thảo văn bản siêu phàm. Nhập cài đặt là:

{

    "cmd": ["path_to_the_python.exe","-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

Để xem đường dẫn , Type following in terminal as:

python
>>> import sys
>>>print(sys.executable)

Bạn có thể tạo nhiều hơn một Hệ thống xây dựng nhưng nó sẽ lưu mặc định bên trong Gói văn bản Sublime với phần mở rộng .sublime-build .

Sau đó, chọn Hệ thống xây dựng mới và nhấn cltr+bhoặc khác dựa trên hệ điều hành của bạn.


0

Tôi đã từng gặp vấn đề tương tự. Có lẽ bạn chưa lưu tệp. Đảm bảo lưu mã của bạn với phần mở rộng .py và nó sẽ hoạt động.


0

Một điều cần lưu ý về hệ thống xây dựng đã nói ở trên : bạn có thể viết (và sử dụng) các .sublime-buildtệp tùy chỉnh hoặc thậm chí cho mỗi build_systemsmệnh đề dự án (trong cài đặt dự án của bạn). Điều này cho phép bạn thực hiện những việc hữu ích như trình chạy thử ưa thích với đầu ra màu ANSI .

Để biết thêm các tính năng "IDE đầy đủ", bạn có thể sử dụng gói SublimePythonIDE tuyệt vời :

  • hoàn thành mã (intel)
  • nhảy đến định nghĩa và mô tả đối tượng
  • thích hợp / pep8
  • hỗ trợ các thông dịch viên khác nhau với virtualenv

Tiết lộ: Tôi đã đóng góp một PR để gói, và tôi sử dụng nó mọi lúc, nhưng những người khác .


0

Sử dụng bảng điều khiển python thực cùng với Sublime

Cả hệ thống xây dựng của Sublime và SublimeREPL (các câu trả lời ở trên) đều bị hạn chế ở chỗ bạn không thể dễ dàng tương tác với các biến không gian làm việc sau khi bạn chạy tệp của mình.

Nếu bạn muốn chạy một tập lệnh, sau đó làm việc theo kiểu REPL (giống như bạn làm trong IDE), thì tôi khuyên bạn nên mở Sublime cùng với bảng điều khiển IPython. Sử dụng AutoHotKey (Windows) hoặc AutoKey (Linux), bạn có thể thiết lập điều này sao cho một phím tắt duy nhất sẽ sao chép tên tệp (hoặc chỉ mã đã chọn) và sau đó dán mã này vào bảng điều khiển để chạy tệp.

Hướng dẫn chi tiết cho Linux hoặc Windows

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.