Jak uruchomić kod Pythona z Sublime Text 2?

309

Chcę skonfigurować kompletne IDE Pythona w Sublime Text 2.

Chcę wiedzieć, jak uruchomić kod Python z poziomu edytora. Czy zrobiono to przy użyciu systemu kompilacji? Jak mam to zrobić ?

neo
źródło

Odpowiedzi:

372

Narzędzia -> Kompiluj system -> (wybierz) Python, a następnie:

Biegać:

      Tools -> Build

      -or-

      Ctrl + B

      CMD + B  (OSX)

Spowoduje to uruchomienie pliku w konsoli, która powinna znajdować się na dole edytora.

Zatrzymać:

       Ctrl + Break or Tools -> Cancel Build

       Fn + C (OSX)

Możesz dowiedzieć się, gdzie jest twój Breakklucz: http://en.wikipedia.org/wiki/Break_key .

Uwaga: NIECTRL + C będzie działać.

Co robić, gdy Ctrl + Breaknie działa:

Iść do:

Preferencje -> Wiązania klawiszy - Użytkownik

i wklej poniższy wiersz:

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

Teraz możesz użyć ctrl+shift+czamiastCTRL+BREAK

matiit
źródło
9
wysublimowany tekst może również „automatycznie wykrywać” język. Więc zadziałało dla mnie tylko CTRL + B
Alexis
4
Upewnij się, że pythonjesteś w PATH... instalatorze systemu Windows nie wydaje się robić tego automatycznie
SeanJA
2
jak przestać działać program (python)?
Ib33X
3
Klawisz podziału mojej klawiatury wygląda jak „Pauza / Przerwa”, więc aby zatrzymać proces, dodałem również{"keys": ["pause"], "command": "exec", "args": {"kill": true} }
lodowaty
3
Posiadanie wiersza {"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} }w powiązaniach klawiszy użytkownika i używanie ctrl+shift+cwydruków, że kompilacja jest w [Cancelled]trakcie działania programu.
Devi,
56

W systemie Mac OS X zapisz plik z rozszerzeniem .py. Naciśnij + B. Działa w oknie poniżej.

wprowadź opis zdjęcia tutaj

Bobobobo
źródło
55

Edytuj% APPDATA% \ Sublime Text 2 \ Python \ Python.sublime-build

Zmień zawartość na:

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

zmień część „c: \ python27” na dowolną wersję Pythona, którą masz w swoim systemie.

ppy
źródło
3
Zwróć uwagę na podwójny ukośnik na ścieżce, Sublime inaczej go nie rozpozna!
Enrico
6
Pojedynczy ukośnik działa również zamiast podwójnego ukośnika odwrotnego w systemie Windows: „C: /Python27/python.exe” (à la Linux i OSX)
Dylan Hogg
7
Dla mnie ścieżka brzmiała:% APPDATA% \ Sublime Text 2 \ Packages \ Python \ Python.sublime-build
aultimus
5
Wydaje się, że nie widzę folderu Python w Sublime Text 3
HoKy22
44

Aby uruchomić, naciśnij CtrlB(odpowiedz matiit )

Ale kiedy CtrlB nie działa , Sublime Text prawdopodobnie nie może znaleźć interpretera Pythona. Podczas próby uruchomienia programu przejrzyj dziennik i znajdź w ścieżce odwołanie do Pythona.

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

Chodzi o to, że próbuje uruchomić Pythona za pomocą wiersza polecenia, cmd wygląda następująco:

python -u C:\scripts\test.py

Jeśli nie możesz uruchomić Pythona z cmd, Sublime Text też nie może.
(Spróbuj sam w cmd, wpisz w nim python i uruchom go, powinna pojawić się komenda python)

ROZWIĄZANIE

Możesz zmienić formułę kompilacji Sublime Text lub System %PATH%.

  • Aby ustawić %PATH%:
    * Musisz ponownie uruchomić edytor, aby załadować nowy%PATH%

    • Uruchom wiersz poleceń * i wprowadź to polecenie: * należy uruchomić jako administrator,
      SETX /M PATH "%PATH%;<python_folder>"
      na przykład:SETX /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts"

    • LUB ręcznie: (najlepiej)
      Dodaj ;C:\Python27;C:\Python27\Scriptsna końcu ciągu. Ustawianie ścieżki w Win7

  • Aby ustawić ścieżkę tłumacza bez bałaganu w Systemie, %PATH%zobacz tę odpowiedź ppy .

Qwerty
źródło
Przepraszamy, ale czy możesz wyjaśnić, co oznacza opcja „-u”? Nie mogę znaleźć opcji listy parametrów wiersza poleceń do przekazania razem z python.exe.
Jim Raynor,
@JimRaynor to niebuforowane strumienie stackoverflow.com/questions/14258500/signiance-of-u-option
Qwerty
9

Możesz użyć SublimeREPL (musisz najpierw zainstalować pakiet kontroli ).

invis
źródło
1
Czy mógłbyś rozwinąć sposób przesyłania danych z okna skryptu do SublimeREPL, ponieważ działa on dla Pythona, podczas gdy R działa ...
Matt Bannert
6

Jeśli używasz Pythona 3.x, musisz edytować Python3.sublime-build

(Preferencje> Przeglądaj pakiety> Python 3)

wyglądać tak:

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

[Dotyczy to ST3 (Win), nie jestem pewien co do ST2]

Aby wynik był widoczny w Sublime jako inny plik (+ jeden w przypadku błędów), wykonaj następujące czynności:

  1. Utwórz nowy system kompilacji: Tools > Build Systems > New Build System...
  2. Użyj następującej konfiguracji:
    {
        „cmd”: [„python.exe”, „$ plik”, „1>”, „$ nazwa_pliku .__ STDOUT __. txt”, „2>”, „$ nazwa_pliku .__ STDERR __. txt”],
        „selector”: „source.python”,
        „shell”: prawda,
        „working_dir”: „$ file_dir”
    }
  1. Dla swojego pliku Python wybierz powyższy plik konfiguracji systemu kompilacji: Tools > Build Systems > {your_new_build_system_filename}
  2. ctrl + b
  3. Teraz obok pliku, np. "file.py"Będziesz mieć "file.__STDOUT__.py"i "file.__STDERR__.py"(w przypadku ewentualnych błędów)
  4. Jeśli podzielisz okno na 3 kolumny lub siatkę, zobaczysz wynik natychmiast, bez potrzeby przełączania paneli / okien
ellockie
źródło
2

Fajni chłopaki, właśnie to znalazłem:

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

Wyjaśnia (jak jedną z powyższych odpowiedzi), jak edytować ten plik exec.py w domyślnym katalogu.

Miałem problem, że moja aplikacja PYTHON UI nie mogła się uruchomić. Skomentowałem ostatni wiersz z następującego wycinka:

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

i taaadaaaa, mogłem uruchomić moją aplikację, naciskając Ctrl + B. W każdym razie zabawna linia? I wielkie podziękowania dla każdego, kto napisał ten artykuł ;-)

anhoppe
źródło
Rozwiązałem również mój problem. Dane wyjściowe konsoli pojawiały się w Sublime Text 2, pokazując, że mój kod był wykonywany, ale mój GUI nigdy się nie pojawił. Skomentowałem tę linię i teraz jest. Dane wyjściowe konsoli nadal trafiają do Sublime Text. Doskonały!
Jonathan Lidbeck
1

Dostęp do konsoli Python można uzyskać za pomocą „Wyświetl / pokaż konsolę” lub Ctrl+ `.

szturchać
źródło
1
ale pokazuje następujący błąd: Plik „. \ exec.py”, wiersz 109, w trakcie uruchamiania Plik „. \ ntpath.py”, wiersz 205, w nazwie pliku Plik „. \ ntpath.py”, wiersz 170, w podzielonym pliku „. \ ntpath.py”, wiersz 125, w splitdrive TypeError: Obiekt „NoneType” nie podlega skryptowi
neo
Podaj więcej szczegółów (rozszerzając pytanie) na temat tego, co robisz.
poke
po prostu wpisuję kod python, na przykład print 'hello', a następnie buduję go i otwieram konsolę, aby zobaczyć ten błąd.
neo,
Korzystanie z konsoli Python nie odpowiada na pytanie . Wbudowany interpreter służy wyłącznie do interakcji z interfejsem API wtyczki, a nie do ogólnego programowania.
mkenyon
1

Rozwiązałem ten problem:

> Preferences –> Browse Packages –> Default 

Otwórz exec.pyplik w pobliżu linii 41-42, kod powinien wyglądać następująco:

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

następnie usuń lub edytuj jako:

try:    
    for k, v in proc_env.iteritems():
        proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
except:
    print 'foobar'
Rhea
źródło
co to właściwie robi? Jak to pomaga?
Qwerty
@Qwerty Uważał, że program powinien obsługiwać wyjątki, więc umieścił kod w trybloku.
CHM
Próbowałem tego. Nie rozwiązało problemu i złamało istniejące zachowanie.
Jonathan Lidbeck
1

Dzisiaj spotkałem ten sam problem. Oto jak udało mi się uruchomić kod Pythona w Sublime Text 3:

  1. Naciśnij Ctrl+ B(dla komputerów Mac, + B), aby rozpocząć kompilację systemu. Powinien teraz wykonać plik.
  2. Postępuj zgodnie z tą odpowiedzią, aby zrozumieć, jak dostosować system kompilacji.

Następnie musisz zamienić zawartość Python.sublime-buildna

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

Możesz oczywiście dodatkowo dostosować go do czegoś, co Ci odpowiada.

Huang Chao
źródło
1

W python v3.x należy udać się do: Tools->Build System->New Build System.

Następnie wyskakuje okno untitled.sublime-build w wysublimowanym edytorze tekstu. Wprowadź ustawienie jako:

{

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

Aby zobaczyć ścieżkę Type following in terminal as:

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

Możesz stworzyć więcej niż jeden system kompilacji, ale powinien on domyślnie zapisywać w paczkach tekstu Sublime z rozszerzeniem .sublime-build .

Następnie wybierz nowy system budowania i naciśnij cltr+blub inny w zależności od systemu operacyjnego.

susan097
źródło
0

Miałem ten sam problem. Prawdopodobnie nie zapisałeś jeszcze pliku. Pamiętaj, aby zapisać swój kod z rozszerzeniem .py i powinien on działać.

Onat
źródło
0

Należy wspomnieć o wyżej wspomnianym systemie kompilacji : możesz pisać (i używać) .sublime-buildplików niestandardowych lub nawet według build_systemsklauzuli projektu (w ustawieniach projektu). Pozwala to robić przydatne rzeczy, takie jak fantazyjny tester z wyjściowymi kolorami ANSI .

Aby uzyskać jeszcze więcej funkcji „pełnego IDE”, możesz użyć doskonałego pakietu SublimePythonIDE :

  • uzupełnianie kodu (intel)
  • przejdź do definicji i opisu obiektu
  • poprawne przyciemnianie / pep8
  • obsługuje różnych tłumaczy przy pomocy virtualenv

Ujawnienie: Mam przyczyniły PR do tego pakietu, i używam go cały czas, ale tam inni .

tutuDajuju
źródło
0

Użyj prawdziwej konsoli Pythona razem z Sublime

Zarówno system kompilacji Sublime, jak i SublimeREPL (powyższe odpowiedzi) są ograniczone, ponieważ po uruchomieniu pliku nie można łatwo wchodzić w interakcje ze zmiennymi obszaru roboczego.

Jeśli chcesz uruchomić skrypt, pracuj w stylu REPL (podobnie jak w IDE), to polecam, aby Sublime było otwarte obok konsoli IPython. Korzystając z AutoHotKey (Windows) lub AutoKey (Linux), możesz to ustawić tak, aby pojedynczy skrót kopiował nazwę pliku (lub tylko wybrany kod), a następnie wklejał go w konsoli, aby uruchomić plik.

Szczegółowe instrukcje dla systemu Linux lub Windows

hugke729
źródło