81

Windows と Linux の両方で使用できるようにしたい Python で書かれたいくつかの小さなユーティリティ スクリプトがあります。Python インタープリターを明示的に呼び出す必要はありません。Windows と Linux の両方でシバン表記を正しい場所に向ける簡単な方法はありますか? そうでない場合、オペレーティング システム間で転送するときにスクリプトを変更することなく、Windows と Linux の両方で Python インタープリターの暗黙的な呼び出しを許可する別の方法はありますか?

編集: Windows でのシバン サポートは Cygwin で提供されますが、Cygwin ではなく、Windows でネイティブの Windows Python インタープリターを使用したいと考えています。

編集#2:シバン表記がCygwin端末のファイル関連付けをオーバーライドしているようです。Cygwin Python をアンインストールして、/usr/bin/python を Windows ネイティブの Python にシンボリック リンクするだけでよいと思います。

4

6 に答える 6

51

PEP 397で最初に説明されたドキュメントの Windows 用 Python ランチャーを読んでください。「py.ini」でカスタム シバン構成を定義できます (例: pypy を使用する)。そのままで、 などの仮想シバンや、 などの実際のパスを持つシバンを使用できます。(スペースを含むパスには引用符が必要です。) シバンにコマンドライン オプションを追加することもできます。たとえば、次のシバンは、スクリプトの終了後にインタラクティブ モードに入るオプションを追加します。#!/usr/bin/env python3#!"C:\Python33\python.exe"#!/usr/bin/python3 -i

インストーラーは、.py (コンソール) および .pyw (GUI) スクリプト ファイル タイプを、それぞれ名前が付けられたランチャー py.exe および pyw.exe に関連付けて、Windows でスクリプトのシバン サポートを有効にします。すべてのユーザーのインストールの場合、ランチャーは Windows フォルダー (つまり%SystemRoot%) にインストールされます。PATHユーザーごとのインストールの場合、シェルで py.exe を使用するために、インストール ディレクトリを手動で追加する必要がある場合があります(*)。次に、コマンド ラインから、、、、(32 ビット) などを介しpy -2てPython を実行できます。ランチャーは、特定のバージョンのインタープリターを使用してモジュールをスクリプトとして実行するために と組み合わせると便利です。py -3py -2.6py -3.3-32-mpy -3 -m pip install


(*) 3.5 以降の新しいインストーラーは、「python.exe」の横にインストールするのではなく、ランチャーのユーザーごとのインストール用に「%LocalAppData%\Programs\Python\Launcher」にデフォルト設定され、このディレクトリを自動的にPATH.

于 2012-10-03T20:41:24.397 に答える
40

cygwin を使用していない限り、windows にはシバン サポートがありません。ただし、python をインストールすると、.py ファイルのファイル関連付けとして追加されます。コマンド ラインにスクリプトの名前を入力するか、Windows エクスプローラーでスクリプトをダブルクリックすると、Python で実行されます。

私がしていることは#!/usr/bin/env python、スクリプトにシバンを含めることです。これにより、Linux でのシバン サポートが可能になります。Python がインストールされた Windows マシンで実行すると、ファイルの関連付けが存在し、同様に実行されます。

于 2011-09-27T19:23:40.053 に答える
1

pywin32をインストールします。良い点の1つは、*。pyとPythonインタープリターのファイルの関連付けを設定することです。

于 2011-09-27T21:22:42.837 に答える
0

シバンではありません...しかし、ファイルの関連付けを設定できる可能性があります。Perlを扱うこのSOの質問と、Windowsおよびstdin/outリダイレクトに既知の問題があるため関連する関連する回答を参照してください...

于 2011-09-27T19:20:16.263 に答える