2015-06-15 11 views
18

Próbuję skonfigurować PyCharm, aby wywoływał skrypt powłoki, zamiast pythona, jako opcję uruchamiania. czy to możliwe? W domyślnych opcjach mam tylko testy Python, Python i Python. W wersji profesjonalnej mam również Django i inne. Jednak wszystkie one mają python jako interpreter w combobox i nie mogą być zmienione tak daleko, jak widzę.Jak mogę uruchomić skrypt powłoki zamiast Pythona w konfiguracji uruchamiania PyCharm?

+0

nigdy nie znaleźli sposób na uzyskanie wbudowany uruchomić config, ale można otworzyć terminal w oknie pycharm i uruchomić tam żadnych poleceń. Czy to działa? – Holloway

+0

@trengot: niezupełnie. Oczywiście, mogę napisać skrypt pakujący Pythona, lub po prostu użyć materiału, ale to raczej pytanie do zrozumienia, jeśli czegoś brakuje. –

Odpowiedz

15

Jeśli chcesz zobaczyć taką funkcję w PyCharm, zagłosuj na żądanie funkcji IDEA-112256 'Command Line' Run Configuration.


Run/Debug Configurations odcinek listach pomocy online pycharm wszystko obsługiwane typy konfiguracji/debug Run i nie ma wsparcia dla skryptów powłoki rzeczywiście. Możesz jednak dodać takie wsparcie, instalując wtyczkę. Na przykład, jeśli interesują Cię skrypty bash, istnieje wtyczka BashSupport, która dodaje obsługę uruchamiania skryptów powłoki w konfiguracji Run/Debug.

Od strony głównej Wtyczki:

BashSupports można bezpośrednio uruchamiać skrypty w ciągu IntelliJ. Możesz stworzyć nową konfigurację uruchamiania dla skryptów Bash. Tutaj możesz ustawić, który interpreter jest używany do jego uruchomienia. Za każdym razem, gdy skrypt jest wykonywany, dane wyjściowe są zapisywane w postaci . Jeśli Bash drukuje błędy składniowe, wówczas klikalne linie są klikalne, aby przejść do lokalizacji błędu.

W systemie Windows nie CmdSupport plugin który zapewnia działanie uruchomienia cmd skrypty. Wygląda jednak na to, że nie obsługuje on takich skryptów jak konfiguracja Run/Debug.

Jako obejście można wykorzystać konfigurację run/debug Pythona, podając jakiś plik manekin (pusty) Pythona do uruchomienia i korzystania przed startem opcji określającej zewnętrznego narzędzia i określ ścieżkę do skryptu podczas dodawania/konfigurowania ten zewnętrzny narzędzie. Aby uzyskać szczegółowe informacje, patrz In IntelliJ IDEA, how can I create a key binding that executes a shell script with the current file as a parameter?.

Ponieważ PyCharm bazuje na platformie IntelliJ's IDEA, pytanie IntelliJ IDEA: Running a shell script as a Run/Debug Configuration jest bardzo podobne.


Mówiąc o konfiguracjach run/debugowania może być zainteresowany w wtyczce Run Configuration as Action który

(...) to sposób korzystania z konfiguracji Uruchom jako przyciski na pasku narzędzi. Albo przypisz skróty, aby wykonać określoną konfigurację uruchamiania.

+0

Niestety, nie jest kompatybilny z najnowszym PyCharm – DataGreed

+0

To działa dobrze, @DataGreed: testowałem i jest on zgodny z PyCharm 2016.1.2 #Build PY-145.844 – juliocesar

2

Myślę, że najprostszym sposobem jest po prostu napisać skrypt Pythona, który wywołuje plik .bat, a następnie uruchom że:

from subprocess import Popen 

p = Popen("batch.bat", cwd=r"C:\Path\to\batchfolder") 
stdout, stderr = p.communicate() 
+0

Jeśli to nie zadziała, dodaj powłokę = True, zobacz: https : //stackoverflow.com/questions/9935151/popen-error-errno-2-no-such-file-lub-directory –

3

To jest naprawdę brakującym elementem, które normalnie powinny być traktowane jako podstawowy funkcjonalność.Istnieją dwie opcje

  1. Najpierw próbowałem stworzyć standard (pusty) konfiguracja Python i użył „Przed uruchomieniem” -> opcja zewnętrznego narzędzia, dlatego należy utworzyć nową definicję narzędzia zewnętrzne z ustawieniami urządzeń:

    • Program: cmd.exe
    • Parametry:/C-your-partia file.bat
    • katalogu roboczym $ ProjectFileDir $ (w moim przypadku $ ProjectPath $ była pusta)

    Denerwujące w tym rozwiązaniu jest to, że standardowe wyjście "zewnętrznego narzędzia" jest przekierowywane do dodatkowej zakładki w oknie dziennika konsoli, które od razu przechodzi w tło, gdy później wykonywana jest fikcyjna konfiguracja Pythona.

  2. Po drugie i lepiej jest użyć Pythona do wykonania polecenia. Zwykle zawsze używam modułu podprocesowego, ale w tym przypadku os.system() jest miłym i minimalnym rozwiązaniem. Konfiguracja run pyton wtedy wygląda to
    • Script: (pusty)
    • Parametry: -c "os import; os.system ('Twoja-batch-file')"
    • katalogu roboczego: (zaznacz directory Project, niestety nie ma tutaj makra)
+0

Komentarz na temat drugiego podejścia: zamiast "Parametrów" musiałem dodać tę linię do "Opcje tłumacza" ". Teraz udało mi się uruchomić kod, ale nie udało mi się go przełamać. Byłbym szczęśliwy, gdyby istniało rozwiązanie, które umożliwiłoby debugowanie kodu Pythona wywoływanego przez plik wsadowy. – Cerno

Powiązane problemy