2013-07-19 15 views
7

Jestem nowy w programowaniu, a Python to mój pierwszy język. Dodałem Python do mojej ścieżki, ale kiedy używam wiersza polecenia, nie muszę dodawać python przed myscript.py w przeciwieństwie do wielu tutoriali, które widziałem. Oto przykład:Dlaczego nie muszę dodawać "python" przed wywołaniem skryptu Python?

C:\User\MyName>Welcome.py 
Welcome to Python 
Python is fun 

Kiedy wchodzę 'Pythona, jest kolejny błąd:

C:\User\MyName>python Welcome.py 
python: can't open file 'Welcome.py': [Errno 2] No such file or directory 

Czy naprawdę potrzebujemy 'python'? Z góry dziękuję!

+1

Czy dzieje się to z jakimkolwiek plikiem '.py', czy po prostu' Welcome.py'? (Mam przeczucie ...) – 2rs2ts

+0

To się stało z wszystkimi plikami .py Mam – user78338

+3

Co pokazuje "assoc .py" po uruchomieniu w wierszu polecenia? –

Odpowiedz

1

Tak i nie.
To naprawdę zależy od sposobu napisania skryptu.

W przypadku większości systemów uniksowych (Linux, Mac OS) można dołączyć #!/bin/python na początek (jako pierwszy wiersz) skryptu, a zatem wykonać go po prostu wywołując nazwę pliku w wierszu poleceń. Ten pierwszy wiersz mówi powłoce, że ten plik zawiera program python. Powłoka następnie używa interpretera python do wykonania pliku (tłumaczenie: tłumaczy twoje $ Welcome.py na $ /bin/python Welcome.py < - zauważ, że python jest wywoływany jawnie i że jest to ta sama ścieżka, co w pierwszym wierszu twojego pliku).

Prawdopodobnie system operacyjny Windows może być również instruowany w ten sam sposób, chociaż nigdy nie byłem w stanie tego zrobić samodzielnie, ani też nie próbowałem bardzo mocno (od 5 lat przeniosłem się z systemu Windows). Dlatego musisz jednoznacznie wywołać python.
Wywołanie python mówi systemowi operacyjnemu: "hej! Otwórz program o nazwie python i powiedz mu, aby uruchomił plik Welcome.py". To jest dokładnie to, co robi komenda /bin/python Welcome.py na systemie UNIX

+3

Z tym że ten problem dotyczy Windo ws, więc ... –

+0

@RiazRizvi: przyznano. I dlatego sceptycznie podchodziłem do tego. Ale wtedy pomyślałem, że to ważna informacja i daje wgląd w to, co się dzieje. Miałem także nadzieję, że ktoś, kto wie więcej niż ja, połączy się z częścią, którą przeoczyłem. Opublikowalem to nie dla przedstawiciela, ale dla informacji, które będą tam. Daj mi znać, jeśli uważasz, że nie powinno go tu być (i jeśli jest to popularna opinia), a ja go usunę. – inspectorG4dget

+0

W Windowsie, myślę, że musisz dodać 'python.exe' (zazwyczaj w' C: \ Python33 lub coś podobnego) do 'PATH', aby osiągnąć to samo. – 2rs2ts

3

Jeśli po Python on Windows FAQ, wydaje się, że średnia Python instalator podjęła już wolność associating .py files z otwartym poleceniem ..\..\Python\python.exe "%1" %*.

How do I make Python scripts executable?

On Windows, the standard Python installer already associates the .py extension with a file type (Python.File) and gives that file type an open command that runs the interpreter (D:\Program Files\Python\python.exe "%1" %*). This is enough to make scripts executable from the command prompt as ‘foo.py’. If you’d rather be able to execute the script by simple typing ‘foo’ with no extension you need to add .py to the PATHEXT environment variable.

Kto miałby thunk! Nie tak było kiedyś cztery lata temu, kiedy po raz pierwszy zainstalowałem Python na moim komputerze z Windows.

1

Podczas instalowania Pythona w systemie Windows przy użyciu zwykłego instalatora pliki .py są powiązane z zainstalowanym python.exe. Po wpisaniu Welcome.py system Windows przeszukuje katalog lokalny, a następnie wszystkie ścieżki w zmiennej PATH dla programu o nazwie Welcome.py i uruchamia go za pośrednictwem Pythona. Ponieważ to zadziałało, oznacza to, że Welcome.py znajduje się gdzieś na twojej ścieżce lub w twoim katalogu lokalnym.

Możesz określić powiązania plików za pomocą poleceń assoc .py i ftype Python.File. Użyteczne są również polecenia echo %PATH% i echo %PATHEXT%.

Po wpisaniu python Welcome.py system Windows przeszukuje wszystkie ścieżki w zmiennej PATH, aby uruchomić program rozpoczynający się od "python" i kończący się rozszerzeniem PATHEXT. Wyszukuje "python.exe" i uruchamia go. Python z kolei szuka skryptu o nazwie Welcome.py w bieżącym katalogu. Ponieważ to nie działało dla ciebie, oznacza to, że Welcome.py nie znajduje się w twoim katalogu lokalnym. To by działało, gdybyś podał właściwą ścieżkę do Welcome.py.

Możesz dowiedzieć się, gdzie znajduje się Welcome.py z (nie dziwi) komendą where Welcome.py.

Jeśli masz tylko jedną instalację Pythona, nie ma potrzeby dzwonienia pod numer python myscript.py ....

Powiązane problemy