PowerShellで直接Pythonスクリプトを実行する


22

Windows PowerShellを使用しています。test.pyいくつかのことを出力するスクリプトがあるとしましょう。私が行った場合:

PS D:\>.\test.py

次に、いくつかの項目を印刷して閉じるCMDウィンドウを開きます。実際には、CMDの下でPythonインタープリターを実行しています。私が行った場合

PS D:\>python test.py

PowerShellに出力が表示され、期待どおりに機能します。

名前を付けただけでスクリプトがPowerShellで実行されるようにするにはどうすればよいですか?


PATHEXT以下のzdanの承認済みの回答を使用して変数を更新した後、PATH環境変数で指定されたディレクトリにPythonスクリプトを配置すると、それらを実行するために完全修飾(または相対)パスを指定する必要がなくなります。そして、Pythonスクリプトは、他のインストールされたプログラムのように振る舞い、そしてあなたは、でそれらを一緒に参加することができ、パイプラインの他のプログラム/コマンドレット(と例えば get-clipboard | myscript.py)、およびすべてのそのほかの良さ。:)
TheDudeAbides

回答:


24

PATHEXT環境変数を編集し、.py拡張子を追加します。

PowerShellプロファイルに次の行を追加するだけです

$env:PATHEXT += ";.py"

または、システム設定でPATHEXTをグローバルに編集することもできます([スタート]メニューで[環境]を検索し、[アカウントの環境変数を編集]のオプションを選択します)。


-1

Pythonの複数のバージョンがインストールされており、IDLEが使用しているバージョンの方が新しい場合があります。使用しているpythonのバージョンを確認するには、コマンドラインで> python -Vと入力します。そのバージョンが適切に見える場合、2番目のパラメーターとしてファイルへのフルパスが必要になる場合があります。たとえば、> python C:\ myfile.py。

Pythonを正しくインストールした場合、スクリプトの名前を入力するだけでPythonで実行される可能性が常にあります。例> myfile.py

C:\ Python27を%PATH%変数に追加し、.PYを%PATHEXT%変数に追加すると、スクリプトの実行が容易になることが常にわかります。この場合、myfileのみが機能するはずです。

更新後に編集:

パラメータなしで> pythonと入力すると、Pythonが「インタラクティブモード」で開きます。これは、スクリプトが対象とするバッチモードまたはスクリプトモードとは異なります。引数を指定して実行すると、最初の引数がファイルパスとして取得され、さらに引数がsys.argvリスト内のスクリプトに渡されます。


どこから答えをコピー&ペーストするのですか?書式を適切にコピーするのを忘れていても、そこに「更新」はありませんでした。
slhck
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.