Argumenty Pycharm i sys.argv


89

Próbuję debugować skrypt, który przyjmuje argumenty wiersza poleceń jako dane wejściowe. Argumenty to pliki tekstowe w tym samym katalogu. Skrypt pobiera nazwy plików z listy sys.argv. Mój problem polega na tym, że nie mogę uruchomić skryptu z argumentami w pycharm.

Próbowałem wprowadzić argumenty w polu „Parametry skryptu” w menu „Uruchom”> „Edytuj konfigurację”, jak poniżej:

-s'file1.txt', -s'file2.txt'

Ale to nie zadziałało. Jak uruchomić skrypt z argumentami?

PS Jestem na Ubuntu

Odpowiedzi:


107

W PyCharm parametry są dodawane Script Parameterstak, jak zrobiłeś, ale są zawarte w podwójnych cudzysłowach "" i bez określania flag interpretera, takich jak -s. Te flagi są określone w Interpreter optionspolu.

Zawartość pola Parametry skryptu:

"file1.txt" "file2.txt"

Flagi Interpeter:

-s

Lub wizualnie:

wprowadź opis obrazu tutaj

Następnie za pomocą prostego pliku testowego do oceny:

if __name__ == "__main__":
    import sys
    print(sys.argv)

Otrzymujemy podane przez nas parametry ( sys.argv[0]oczywiście trzymając nazwę skryptu):

['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt']

Dzięki, zadziałało. Ponadto okazuje się, że powinienem był użyć cudzysłowów „” zamiast „”.
YKY

3
To było pomocne; ale żeby wyjaśnić, mój skrypt w Pythonie przyjmuje dwie nazwy plików jako parametry, jedną dla -r i jedną dla -s (lub obie lub jedną lub żadną). Więc parametry mojego skryptu zostały określone jako [-p "prof_samples.txt" -r "resp_samples.txt"] bez opcji interpretera.
harry

2
Myślę, że ta odpowiedź jest nieaktualna, ponieważ nie mascript parameters
tisaconundrum

@tisaconundrum po sprawdzeniu tego, czy możesz mi powiedzieć, jakiej wersji PyCharm używasz? Właśnie pobrałem najnowszą wersję (PyCharm Community Edition 2017.2.3 Build # PC-172.3968.37, zbudowaną 1 września 2017 r.) I nadal widzę tę Script parametersopcję.
Dimitris Fasarakis Hilliard

Po dodaniu wartości parametrów kliknięcie przycisku ZASTOSUJ lub OK nie uruchamia kodu. Jeśli zapiszę konfiguracje i uruchomię kod, nadal argumenty nie są uwzględniane w kodzie Pycharm Python
Praveen L

75

Ze względu na innych, którzy zastanawiają się, jak dostać się do tego okna. Oto jak:

Możesz uzyskać do niego dostęp, klikając Select Run/Debug Configurations(po lewej stronie wprowadź opis obrazu tutaj) i przechodząc do Edit Configurations. GIF zapewniający przejrzystość.

wprowadź opis obrazu tutaj


1
Krótki klip okazał się pomocny - dziękuję! Tego właśnie nienawidzę w rzeczach z gui. Jej jak Egg Hunt Easter natomiast linii poleceń wystarczy wpisać go w.
Shanemeister

Było to bardziej pomocne niż najlepszy głosowany. Dzięki!
Aakash Basu

12

W PyCharm Community lub Professional Edition 2019.1+ :

  1. Na pasku menu kliknij Uruchom -> Edytuj konfiguracje
  2. Dodaj argumenty w polu tekstowym Parametry (na przykład file2.txt file3.txtlub --myFlag myArg --anotherFlag mySecondArg)
  3. Kliknij Zastosuj
  4. Kliknij OK

11

Oprócz odpowiedzi Jima (przepraszam za mało punktów rep, aby zrobić komentarz), chciałem tylko zwrócić uwagę, że argumenty określone w PyCharm nie mają znaków specjalnych, w przeciwieństwie do tego, co zrobiłbyś w linii poleceń. Tak więc, mając na uwadze, że w wierszu poleceń zrobiłbyś:

python mediadb.py  /media/paul/New\ Volume/Users/paul/Documents/spinmaster/\*.png

parametr PyCharm wyglądałby tak:

"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png"

5

Zauważ, że z jakiegoś nieznanego powodu nie jest możliwe dodanie argumentów wiersza poleceń w wersji PyCharm Edu. Można to zrobić tylko w wersjach Professional i Community.


3

Pierwszy parametr to nazwa skryptu, który chcesz uruchomić. Począwszy od drugiego parametru, są to parametry, które chcesz przekazać z linii poleceń. Poniżej znajduje się skrypt testowy:

from sys import argv

script, first, second = argv
print "Script is ",script
print "first is ",first
print "second is ",second

A oto sposób przekazywania parametrów wejściowych: „Ścieżka do skryptu”, „Pierwszy parametr”, „Drugi parametr”

Powiedzmy, że ścieżka do twojego skryptu to /home/my_folder/test.py, wynik będzie taki:

Script is /home/my_folder/test.py
first is First Parameter
second is Second Parameter

Mam nadzieję, że to pomoże, ponieważ zajęło mi trochę czasu, aby dowiedzieć się, że parametry wejściowe są oddzielone przecinkami.


2

Dodaj następujące elementy na początku pliku Python.

import sys

sys.argv = [
    __file__,
    'arg1',
    'arg2'
]

Teraz możesz po prostu kliknąć prawym przyciskiem myszy skrypt Pythona.


1

Wierzę, że jest zawarty nawet w wersji Edu. Wystarczy kliknąć prawym przyciskiem myszy przycisk z zieloną strzałką (Uruchom) i wybrać „Dodaj parametry”.


1

U mnie działa w wersji edu. Nie było potrzeby określania opcji -s w opcjach interpretera.

Parametry Pycharm do uruchamiania z wierszem poleceń

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.