Bagaimana cara menjalankan kode Python dari Sublime Text 2?

309

Saya ingin mengatur IDE Python lengkap dalam Sublime Text 2.

Saya ingin tahu cara menjalankan kode Python dari dalam editor. Apakah sudah selesai menggunakan sistem build? Bagaimana saya melakukannya ?

neo
sumber

Jawaban:

372

Alat -> Bangun Sistem -> (pilih) Python lalu:

Untuk berlari:

      Tools -> Build

      -or-

      Ctrl + B

      CMD + B  (OSX)

Ini akan memulai file Anda di konsol yang seharusnya ada di bagian bawah editor.

Untuk Berhenti:

       Ctrl + Break or Tools -> Cancel Build

       Fn + C (OSX)

Anda dapat mengetahui di mana Breakkunci Anda ada di sini: http://en.wikipedia.org/wiki/Break_key .

Catatan: TIDAKCTRL + C akan bekerja.

Apa yang harus dilakukan ketika Ctrl + Breaktidak berfungsi:

Pergi ke:

Preferensi -> Binding Kunci - Pengguna

dan tempelkan baris di bawah ini:

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

Sekarang, Anda dapat menggunakan ctrl+shift+cbukannyaCTRL+BREAK

matiit
sumber
9
teks luhur juga dapat "mendeteksi secara otomatis" bahasa tersebut. Jadi itu berhasil bagi saya untuk hanya CTRL + B
Alexis
4
Pastikan pythonada di PATH... windows installer Anda sepertinya tidak melakukan ini secara otomatis
SeanJA
2
bagaimana Anda berhenti menjalankan program (python)?
Ib33X
3
Tombol istirahat keyboard saya terlihat seperti "Pause / Break", jadi untuk menghentikan proses saya juga menambahkan{"keys": ["pause"], "command": "exec", "args": {"kill": true} }
es
3
Memiliki garis {"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} }dalam binding kunci Pengguna dan menggunakan ctrl+shift+ccetakan yang dibuatnya [Cancelled]saat program masih dijalankan.
Devi
56

Pada Mac OS X, simpan file Anda dengan ekstensi .py. Tekan + B. Ini berjalan di jendela di bawah ini.

masukkan deskripsi gambar di sini

bobobobo
sumber
55

Edit% APPDATA% \ Teks Sublime 2 \ Python \ Python.sublime-build

Ubah konten menjadi:

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

ubah bagian "c: \ python27" menjadi versi python yang Anda miliki di sistem Anda.

ppy
sumber
3
Perhatikan tebasan ganda di jalan, Sublime tidak akan mengenalinya sebaliknya!
Enrico
6
Single forward slash juga berfungsi sebagai pengganti double backslash pada Windows: "C: /Python27/python.exe" (à la Linux dan OSX)
Dylan Hogg
7
Bagi saya jalannya adalah% APPDATA% \ Sublime Text 2 \ Packages \ Python \ Python.sublime-build
aultimus
5
Saya sepertinya tidak melihat folder Python di Sublime Text 3
HoKy22
44

Untuk MENJALANKAN tekan CtrlB(dijawab oleh matiit )

Tetapi ketika CtrlB tidak berfungsi , Sublime Text mungkin tidak dapat menemukan Penerjemah Python. Saat mencoba menjalankan program Anda, lihat log dan temukan referensi ke Python di jalur.

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

Intinya adalah ia mencoba menjalankan python melalui command line, cmd terlihat seperti:

python -u C:\scripts\test.py

Jika Anda tidak dapat menjalankan python dari cmd, Sublime Text juga tidak bisa.
(Coba sendiri di cmd, ketik python di dalamnya dan jalankan, python commandline akan muncul)

LARUTAN

Anda dapat mengubah formula build Sublime Text atau System %PATH%.

  • Untuk mengatur %PATH%:
    * Anda harus me-restart editor Anda untuk memuat yang baru%PATH%

    • Jalankan Command Line * dan masukkan perintah ini: * perlu dijalankan sebagai administrator
      SETX /M PATH "%PATH%;<python_folder>"
      misalnya:SETX /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts"

    • ATAU secara manual: (lebih disukai)
      Tambahkan ;C:\Python27;C:\Python27\Scriptsdi akhir string. Mengatur Path di Win7

  • Untuk mengatur jalur juru bahasa tanpa mengacaukan Sistem, %PATH%lihat jawaban ini dengan ppy .

Qwerty
sumber
Maaf tetapi bisakah Anda menjelaskan apa arti dari opsi "-u"? Saya tidak dapat menemukan opsi daftar params baris perintah untuk lulus bersama dengan python.exe.
Jim Raynor
@JimRaynor, ini stream unbuffered, stackoverflow.com/questions/14258500/significance-of-u-option
Qwerty
9

Anda dapat menggunakan SublimeREPL (Anda harus menginstal Paket Kontrol terlebih dahulu).

invis
sumber
1
Bisakah Anda menguraikan cara mengirimkan data dari jendela skrip ke SublimeREPL, karena itu berfungsi untuk python, sementara R bekerja ...
Matt Bannert
6

Jika menggunakan python 3.x Anda perlu mengedit Python3.sublime-build

(Preferensi> Jelajahi paket> Python 3)

agar terlihat seperti ini:

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

[Ini berlaku untuk ST3 (Menang), tidak yakin tentang ST2]

Agar output terlihat di Sublime sebagai file lain (+ satu untuk kesalahan), lakukan ini:

  1. Buat sistem build baru: Tools > Build Systems > New Build System...
  2. Gunakan konfigurasi berikut:
    {
        "cmd": ["python.exe", "$ file", "1>", "$ file_name .__ STDOUT __. txt", "2>", "$ file_name .__ STDERR __. txt"],
        "selector": "source.python",
        "shell": true,
        "working_dir": "$ file_dir"
    }
  1. Untuk file Python Anda, pilih file konfigurasi sistem bangun di atas: Tools > Build Systems > {your_new_build_system_filename}
  2. ctrl + b
  3. Sekarang, di sebelah file Anda, mis. "file.py"Anda akan memiliki "file.__STDOUT__.py"dan "file.__STDERR__.py"(untuk kesalahan, jika ada)
  4. Jika Anda membagi jendela menjadi 3 kolom, atau kotak, Anda akan segera melihat hasilnya, tanpa perlu mengganti panel / jendela
Ellockie
sumber
2

Kawan, saya baru saja menemukan ini:

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

Ini menjelaskan (seperti salah satu jawaban di atas) cara mengedit exec.py ini di direktori default .

Saya mempunyai masalah yang tidak akan dimulai oleh APLIKASI PYTHON UI saya . Saya mengomentari baris terakhir dari potongan berikut:

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

dan, taaadaaaa, saya bisa memulai aplikasi saya dengan menekan Ctrl + B. Lagipula garis lucu, eh? Dan terima kasih banyak untuk siapa pun yang menulis artikel itu ;-)

anhoppe
sumber
Memecahkan masalah saya juga. Output konsol muncul di dalam Sublime Text 2, menunjukkan bahwa kode saya sedang dieksekusi, tetapi GUI saya tidak pernah muncul. Saya berkomentar garis itu, dan sekarang ada itu. Output konsol masih masuk ke Sublime Text. Sempurna!
Jonathan Lidbeck
1

Anda dapat mengakses konsol Python melalui "Lihat / Tampilkan konsol" atau Ctrl+ `.

menyodok
sumber
1
tetapi ini menunjukkan kesalahan berikut: File ". \ exec.py", baris 109, dalam menjalankan File ". \ ntpath.py", baris 205, dalam File dirname ". \ ntpath.py", baris 170, dalam File split ". \ ntpath.py", baris 125, di splitdrive TypeError: objek 'NoneType' tidak dapat disubkripsikan
neo
Tolong beri lebih banyak detail (dengan memperluas pertanyaan) tentang apa yang Anda lakukan.
colek
saya cukup mengetikkan kode python seperti mencetak 'halo' dan kemudian membangunnya dan buka konsol untuk melihat kesalahan ini.
neo
Menggunakan konsol Python tidak menjawab pertanyaan . Juru bahasa yang disematkan dimaksudkan hanya untuk berinteraksi dengan API plugin, bukan untuk pengembangan umum.
mkenyon
1

Saya memecahkan masalah ini:

> Preferences –> Browse Packages –> Default 

Buka exec.pyfile, dekat baris 41-42, kode akan terlihat seperti ini:

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

kemudian hapus atau edit sebagai:

try:    
    for k, v in proc_env.iteritems():
        proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
except:
    print 'foobar'
Rhea
sumber
sebenarnya apa fungsinya? Bagaimana ini membantu?
Qwerty
@Qwerty Dia pikir program harus menangani pengecualian sehingga dia meletakkan kodenya di tryblok.
CHM
Saya mencoba ini. Itu tidak memperbaiki masalah, dan itu merusak perilaku yang ada.
Jonathan Lidbeck
1

Saya mengalami masalah yang sama hari ini. Dan di sini adalah bagaimana saya berhasil menjalankan kode python di Sublime Text 3:

  1. Tekan Ctrl+ B(untuk Mac, + B) untuk mulai membangun sistem. Seharusnya menjalankan file sekarang.
  2. Ikuti jawaban ini untuk memahami cara mengkustomisasi sistem build.

Apa yang perlu Anda lakukan selanjutnya adalah mengganti konten Python.sublime-buildmenjadi

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

Anda tentu saja dapat lebih lanjut menyesuaikannya dengan sesuatu yang bekerja untuk Anda.

Huang Chao
sumber
1

Dalam python v3.x Anda harus pergi ke: Tools->Build System->New Build System.

Kemudian, akan muncul jendela build tanpa judul.sublim dalam editor teks luhur. Masukkan pengaturan sebagai:

{

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

Untuk melihat jalan, Type following in terminal as:

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

Anda dapat membuat lebih dari satu Sistem Bangun tetapi seharusnya menyimpan default di dalam Paket teks Sublime dengan ekstensi .sublime-build .

Kemudian, pilih Sistem Bangun baru dan tekan cltr+batau lainnya berdasarkan os Anda.

susan097
sumber
0

Saya memiliki masalah yang sama. Anda mungkin belum menyimpan file. Pastikan untuk menyimpan kode Anda dengan ekstensi .py dan itu akan berfungsi.

Onat
sumber
0

Satu hal yang perlu diperhatikan tentang sistem build yang disebutkan di atas : Anda dapat menulis (dan menggunakan) .sublime-buildfile khusus atau bahkan per build_systemsklausa proyek (dalam pengaturan proyek Anda). Ini memungkinkan Anda untuk melakukan hal-hal berguna seperti pelari uji mewah dengan output warna ANSI .

Untuk lebih banyak fitur "IDE lengkap", Anda dapat menggunakan paket SublimePythonIDE yang luar biasa :

  • penyelesaian kode (intel)
  • lompat ke definisi & deskripsi objek
  • linting yang tepat / pep8
  • mendukung penerjemah yang berbeda dengan virtualenv

Pengungkapan: Saya telah menyumbangkan PR untuk paket itu, dan saya menggunakannya setiap saat, tetapi ada yang lain .

tutuDajuju
sumber
0

Gunakan konsol python nyata bersama Sublime

Baik sistem bangun Sublime dan SublimeREPL (jawaban di atas) terbatas karena Anda tidak dapat dengan mudah berinteraksi dengan variabel ruang kerja setelah Anda menjalankan file Anda.

Jika Anda ingin menjalankan skrip, kemudian bekerja dengan cara seperti REPL (seperti yang Anda lakukan dalam IDE), maka saya sarankan Sublime terbuka di samping konsol IPython. Menggunakan AutoHotKey (Windows) atau AutoKey (Linux), Anda dapat mengatur ini sehingga pintasan tunggal akan menyalin nama file (atau hanya kode yang dipilih) dan kemudian tempel ini di konsol untuk menjalankan file.

Petunjuk terperinci untuk Linux atau Windows

hugke729
sumber