ฉันจะเรียกใช้รหัส Python จาก Sublime Text 2 ได้อย่างไร


309

ฉันต้องการตั้งค่า Python IDE ที่สมบูรณ์ใน Sublime Text 2

ฉันต้องการทราบวิธีการเรียกใช้รหัส Python จากภายในตัวแก้ไข ใช้ระบบสร้างหรือไม่ ฉันต้องทำอย่างไร ?

คำตอบ:


372

เครื่องมือ -> สร้างระบบ -> (เลือก) Python แล้ว:

วิ่ง:

      Tools -> Build

      -or-

      Ctrl + B

      CMD + B  (OSX)

สิ่งนี้จะเริ่มต้นไฟล์ของคุณในคอนโซลซึ่งควรอยู่ด้านล่างของเครื่องมือแก้ไข

หยุด:

       Ctrl + Break or Tools -> Cancel Build

       Fn + C (OSX)

คุณสามารถหาที่ของคุณBreakที่สำคัญคือที่นี่: http://en.wikipedia.org/wiki/Break_key

หมายเหตุ: CTRL + Cจะไม่ทำงาน

จะทำอย่างไรเมื่อCtrl + Breakไม่ทำงาน:

ไปที่:

ค่ากำหนด -> การโยงคีย์ - ผู้ใช้

และวางบรรทัดด้านล่าง:

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

ตอนนี้คุณสามารถใช้ctrl+shift+cแทนCTRL+BREAK


9
ข้อความประเสริฐยังสามารถ "ตรวจจับอัตโนมัติ" ภาษา ดังนั้นมันจึงใช้ได้สำหรับฉันที่จะแค่ CTRL + B
Alexis

4
ตรวจสอบให้แน่ใจว่าpythonคุณอยู่ในPATH... ตัวติดตั้ง windows ดูเหมือนจะไม่ทำสิ่งนี้โดยอัตโนมัติ
SeanJA

2
คุณจะหยุดการเรียกใช้โปรแกรม (หลาม) ได้อย่างไร?
Ib33X

3
แป้นพิมพ์ของฉันมีลักษณะที่สำคัญแบ่งเช่น "หยุดชั่วคราว / หยุด" เพื่อที่จะหยุดกระบวนการฉันยังเพิ่ม{"keys": ["pause"], "command": "exec", "args": {"kill": true} }
น้ำแข็ง

3
การมีบรรทัด{"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} }ในการเชื่อมโยงคีย์ผู้ใช้และการใช้งานctrl+shift+cพิมพ์ที่บิลด์เป็น[Cancelled]ในขณะที่โปรแกรมยังทำงาน
Devi

56

ใน Mac OS X ให้บันทึกไฟล์ของคุณด้วยนามสกุล. py กด+ Bมันทำงานในหน้าต่างด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่


55

แก้ไข% APPDATA% \ Sublime Text 2 \ Python \ Python.sublime-build

เปลี่ยนเนื้อหาเป็น:

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

เปลี่ยนส่วน "c: \ python27" เป็น python ทุกรุ่นที่คุณมีในระบบ


3
ให้ความสนใจกับเครื่องหมายทับสองครั้งในเส้นทาง Sublime จะไม่จดจำเป็นอย่างอื่น!
เอนรีโก

6
ทับไปข้างหน้าเดียวยังทำงานแทนแบ็กสแลชคู่บน Windows: "C: /Python27/python.exe" (à la Linux และ OSX)
Dylan Hogg

7
สำหรับฉันเส้นทางคือ% APPDATA% \ Sublime Text 2 \ Packages \ Python \ Python.sublime-build
aultimus

5
ฉันดูเหมือนจะไม่เห็นโฟลเดอร์ Python ใน Sublime Text 3
HoKy22

44

ถึง RUNกดCtrlB(ตอบโดยmatiit )

แต่เมื่อCtrlB ใช้งานไม่ได้ Sublime Text อาจไม่สามารถหา Python Interpreter ได้ เมื่อพยายามเรียกใช้โปรแกรมของคุณดูบันทึกและค้นหาการอ้างอิงถึง Python ในเส้นทาง

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

ประเด็นก็คือมันพยายามเรียกใช้ python ผ่านทางบรรทัดคำสั่ง cmd มีลักษณะดังนี้:

python -u C:\scripts\test.py

หากคุณไม่สามารถเรียกใช้ python จาก cmd ได้ Sublime Text ก็ไม่สามารถทำได้เช่นกัน
(ลองด้วยตัวคุณเองในคำสั่งพิมพ์ python ในนั้นและเรียกใช้มัน commandline หลามควรปรากฏขึ้น)

สารละลาย

คุณสามารถเปลี่ยนข้อความสร้างสูตร Sublime %PATH%หรือระบบ

  • ในการตั้งค่าของคุณ%PATH%:
    * คุณจะต้องเริ่มการแก้ไขใหม่เพื่อโหลดใหม่%PATH%

    • เรียกใช้ Command Line * และป้อนคำสั่งนี้: * จำเป็นต้องเรียกใช้ในฐานะผู้ดูแลระบบ
      SETX /M PATH "%PATH%;<python_folder>"
      ตัวอย่างเช่น:SETX /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts"

    • หรือด้วยตนเอง: (ดีกว่า)
      เพิ่ม;C:\Python27;C:\Python27\Scriptsในตอนท้ายของสตริง การตั้งค่าพา ธ ใน Win7

  • การกำหนดเส้นทางล่ามโดยไม่ต้องไปยุ่งกับระบบ%PATH%ดูคำตอบนี้โดยPPY


ขออภัยคุณสามารถอธิบายความหมายของตัวเลือก "-u" ได้อย่างไร? ฉันไม่พบตัวเลือกรายการของ params บรรทัดคำสั่งเพื่อส่งพร้อมกับ python.exe
Jim Raynor

@JimRaynor มันเป็นสตรีมแบบไม่มีข้อผิดพลาดstackoverflow.com/questions/14258500/significance-of-u-option
Qwerty

9

คุณสามารถใช้SublimeREPL (คุณต้องติดตั้งPackage Controlก่อน)


1
คุณช่วยอธิบายเกี่ยวกับวิธีการจัดส่งข้อมูลจากหน้าต่างสคริปต์ไปที่ SublimeREPL ได้หรือไม่เพราะ Python ทำงานในขณะที่ R ทำงาน ...
Matt Bannert

6

หากใช้ python 3.x คุณจะต้องแก้ไข Python3.sublime-build

(การตั้งค่า> เรียกดูแพ็คเกจ> Python 3)

เพื่อมีลักษณะเช่นนี้:

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

4

[ใช้กับ ST3 (Win) ไม่แน่ใจเกี่ยวกับ ST2]

หากต้องการให้เอาต์พุตปรากฏใน Sublime เป็นไฟล์อื่น (+ หนึ่งสำหรับข้อผิดพลาด) ให้ทำดังนี้:

  1. สร้างระบบบิลด์ใหม่: Tools > Build Systems > New Build System...
  2. ใช้การกำหนดค่าต่อไปนี้:
    {
        "cmd": ["python.exe", "$ file", "1>", "$ file_name .__ STDOUT __. txt", "2>", "$ file_name .__ STDERR __. txt"],
        "selector": "source.python",
        "shell": จริง
        "working_dir": "$ file_dir"
    }
  1. สำหรับไฟล์ Python ของคุณเลือกไฟล์กำหนดค่าระบบบิลด์: Tools > Build Systems > {your_new_build_system_filename}
  2. ctrl + b
  3. ตอนนี้ถัดจากไฟล์ของคุณเช่น"file.py"คุณจะมี"file.__STDOUT__.py"และ "file.__STDERR__.py"(สำหรับข้อผิดพลาดถ้ามี)
  4. หากคุณแบ่งหน้าต่างออกเป็น 3 คอลัมน์หรือตารางคุณจะเห็นผลลัพธ์ทันทีโดยไม่จำเป็นต้องสลับแผง / หน้าต่าง

2

Cool U guys ฉันเพิ่งพบสิ่งนี้:

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

มันอธิบาย (เช่นหนึ่งในคำตอบข้างต้น) วิธีแก้ไขexec.pyนี้ในไดเรกทอรีเริ่มต้น

ฉันมีปัญหาว่าแอปPYTHON UIของฉันจะไม่เริ่มทำงาน ฉันแสดงความคิดเห็นในบรรทัดสุดท้ายจาก snipped ต่อไปนี้:

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

และ taaadaaaa ฉันสามารถเริ่มแอพได้โดยกด Ctrl + B ยังไงก็ตามสายตลกเอ่อ? และขอขอบคุณอย่างมากสำหรับผู้ที่เขียนบทความนั้น ;-)


แก้ไขปัญหาของฉันด้วย เอาท์พุทของคอนโซลปรากฏใน Sublime Text 2 ซึ่งแสดงว่ารหัสของฉันกำลังทำงาน แต่ GUI ของฉันไม่เคยปรากฏขึ้น ฉันแสดงความคิดเห็นบรรทัดนั้นและตอนนี้ก็มี คอนโซลเอาต์พุตยังคงไปที่ Sublime Text ที่สมบูรณ์แบบ!
Jonathan Lidbeck

1

คุณสามารถเข้าถึงคอนโซลงูใหญ่ผ่านทาง“ดู / แสดงคอนโซล” หรือ+Ctrl`


1
แต่จะแสดงข้อผิดพลาดต่อไปนี้: ไฟล์ ". \ exec.py", บรรทัดที่ 109, ในการรันไฟล์ ". \ ntpath.py", บรรทัดที่ 205, ในไฟล์ dirname ". \ ntpath.py", บรรทัดที่ 170, แยกไฟล์ ". \ ntpath.py", บรรทัดที่ 125, ใน splitDrive TypeError Type: วัตถุ 'NoneType' ไม่สามารถอธิบายได้
neo

โปรดให้รายละเอียดเพิ่มเติม (โดยขยายคำถาม) เกี่ยวกับสิ่งที่คุณกำลังทำ
กระตุ้น

ฉันพิมพ์รหัสไพ ธ อนเช่นพิมพ์ 'hello' แล้วสร้างและเปิดคอนโซลเพื่อดูข้อผิดพลาดนี้
neo

การใช้ Python console ไม่สามารถตอบคำถามได้ ล่ามที่ฝังไว้มีวัตถุประสงค์เพื่อโต้ตอบกับปลั๊กอิน API เท่านั้นไม่ใช่เพื่อการพัฒนาทั่วไป
mkenyon

1

ฉันแก้ไขปัญหานี้:

> Preferences –> Browse Packages –> Default 

เปิดexec.pyไฟล์ใกล้กับบรรทัดที่ 41-42 โค้ดควรมีลักษณะดังนี้:

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

จากนั้นลบหรือแก้ไขเป็น:

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

มันทำอะไรจริง มันช่วยได้อย่างไร
Qwerty

@Qwerty เขาคิดว่าโปรแกรมควรจัดการกับข้อยกเว้นเพื่อให้เขาใส่รหัสในtryบล็อก
CHM

ฉันลองสิ่งนี้ มันไม่สามารถแก้ไขปัญหาได้และจะขัดจังหวะพฤติกรรมที่มีอยู่
Jonathan Lidbeck

1

วันนี้ฉันเจอปัญหาเดียวกัน และนี่คือวิธีที่ฉันจัดการเพื่อเรียกใช้รหัสหลามใน Sublime Text 3:

  1. กดCtrl+ B(สำหรับ Mac, + B) เพื่อเริ่มสร้างระบบ มันควรจะรันไฟล์ทันที
  2. ทำตามคำตอบนี้เพื่อทำความเข้าใจวิธีปรับแต่งระบบบิลด์

สิ่งที่คุณต้องทำต่อไปคือแทนที่เนื้อหาในPython.sublime-buildการ

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

แน่นอนว่าคุณสามารถปรับแต่งให้เข้ากับสิ่งที่เหมาะกับคุณ


1

ในหลาม v3.x Tools->Build System->New Build Systemคุณควรไปที่:

จากนั้นจะปรากฎหน้าต่าง untitled.sublime-build ในโปรแกรมแก้ไขข้อความประเสริฐป้อนการตั้งค่าเป็น:

{

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

หากต้องการดูเส้นทางType following in terminal as:

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

คุณสามารถสร้างระบบมากกว่าหนึ่งระบบได้ แต่ควรเป็นค่าเริ่มต้นบันทึกภายในแพ็คเกจของข้อความ Sublimeด้วยนามสกุล. sublime-build

จากนั้นเลือกระบบสร้างใหม่ และกดcltr+bหรืออื่น ๆ ตามระบบปฏิบัติการของคุณ


0

ผมมีปัญหาเหมือนกัน. คุณอาจยังไม่ได้บันทึกไฟล์ ตรวจสอบให้แน่ใจว่าได้บันทึกรหัสของคุณด้วยนามสกุล. py และควรใช้งานได้


0

สิ่งหนึ่งที่ควรทราบเกี่ยวกับระบบการสร้างดังกล่าวข้างต้น: คุณสามารถเขียน (และใช้) .sublime-buildไฟล์ที่กำหนดเองหรือแม้แต่ตามbuild_systemsข้อโครงการ(ในการตั้งค่าโครงการของคุณ) นี้ช่วยให้คุณทำสิ่งที่มีประโยชน์เช่นวิ่งทดสอบแฟนซีมาตรฐาน ANSI สีเอาท์พุท

สำหรับฟีเจอร์ "full IDE" เพิ่มเติมคุณสามารถใช้แพ็คเกจSublimePythonIDE ที่ยอดเยี่ยม:

  • การเติมโค้ดให้สมบูรณ์ (intel)
  • ข้ามไปที่นิยาม & คำอธิบายวัตถุ
  • ผ้าสำลีที่เหมาะสม / pep8
  • รองรับล่ามที่แตกต่างด้วย virtualenv

การเปิดเผยข้อมูล: ผมได้มีส่วนร่วมในการส่งเสริมการขายแพคเกจที่และฉันใช้มันตลอดเวลา แต่มี มี คนอื่น ๆ


0

ใช้คอนโซลหลามจริงข้าง Sublime

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

หากคุณต้องการเรียกใช้สคริปต์ให้ทำงานในลักษณะคล้าย REPL (เช่นที่คุณทำใน IDE) ดังนั้นฉันขอแนะนำให้เปิด Sublime ควบคู่กับคอนโซล IPython ใช้ AutoHotKey (Windows) หรือ AutoKey (Linux) คุณสามารถตั้งค่านี้เพื่อให้ทางลัดเดียวจะคัดลอกชื่อไฟล์ (หรือเพียงแค่รหัสที่เลือก) จากนั้นวางสิ่งนี้ลงในคอนโซลเพื่อเรียกใช้ไฟล์

คำแนะนำโดยละเอียดสำหรับLinuxหรือWindows

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