Windowsで `#!/ usr / bin / env python`を機能させる


14

MSYSが提供するWindowsではBashを使用しています。

のシバンでPythonファイルを実行しようとしましたが、#!/usr/bin/env python次のエラーメッセージが表示されます。

/usr/bin/env: python: No such file or directory

これを機能させるにはどうすればよいですか?

接尾辞としてを付けてPythonファイルを起動できることはわかっていますが、接尾辞pythonがなくても動作するようにしたいと思います。

回答:


8

代わりに、Pythonがインストールされている適切なパスを使用してください。

#!c:/Python/python.exe

システムでUnixライクなパスをサポートしている場合(私はMSYSに詳しくありません)、python実行可能ファイルへのパス、つまりの出力をいつでも入力できますwhich python


2
またはenv、質問者が行うように、を使用することもできます。
Ignacio Vazquez-Abrams 2012年

私はシバンを変更することはできません、それはLinuxとMacで作業する他のプログラマーを含むプロジェクトの一部です。
Ram Rachum 2012年

@RamRachum which envand which pythonおよびand の出力は何type pythonですか?
ダニエルベック


0

(シェルから)実行するとどうなりますか?

$ /usr/bin/env python

..?

インタラクティブなpythonセッションを開始すると、pythonが見つかります。(単に実行することもできます:)type python。「そのようなファイルやディレクトリpythonはありません」と表示される場合は、PATHで見つかりません。以下を調整して問題を修正できるかどうかを確認します(path / to / python内のスペースが問題を引き起こす可能性があります)。

$ export PATH=$PATH:/path/to/python
$ /usr/bin/env python

0

activate.shVirtualenv のファイルとMSYSGITが一致していないことがわかりました。Windowsで動作することを意図したものではありません。


0

Windows 10の最新バージョンは、Linuxサブシステムのインストールをサポートしています。そこから実行する場合、パスは正しいはずです。

この方法で実行しても問題がない場合は、有効なソリューションになるはずです。


0

問題の根本は、シバンのスペースが実行可能ファイルに追加の引数を提供するものとして解釈されるため、引数C:\Program Files\Python\python.exeとしてC:\Program与えられFiles\Python\python.exeていると見なされることです。

Windows がcmd.exeやPowershellやその他のツールで実際に問題を起こす可能性があるとしても、Windowsは$HOMEディレクトリProgram Filesやその他の場所のスペースを愛するので、これに対する最善の解決策は次のとおりです。

にPythonをインストールしC:\Python、その中に存在するC:\Pythonフォルダーpython.exeとそのScripts中に存在するディレクトリをPATHシステムまたはユーザーレベルの環境変数に追加します。

あなたが共存するにはPython 2.7.35および3.xが必要な場合は、にそれらをインストールC:\Python27し、C:\Python36そしてC:\Python37名前の変更python.exepython2.exepython36.exepython37.exe、など、これらのフォルダとそのそれぞれの追加ScriptsにフォルダをPATH。「デフォルト」にしたいPython 3バージョンを決定し、python3.exeを使用するスクリプトを処理するために、そのフォルダーにコピーを作成することもできます!#/usr/bin/env python3

ユーザーのホームディレクトリにスペースがある場合、pip install --user somepackage構文を使用すると問題が発生する可能性もあります。--userあなたのホームディレクトリにデフォルト、およびスペースは、この場合にも物事をトリップします。回避策はここで説明されてますが、結局はPYTHONUSERBASEを環境にエクスポートすることになります。

export PYTHONUSERBASE=/myappenv
pip install --user SomePackage

またはWindows(Powershell)の場合:

$env:PYTHONUSERBASE='C:\PythonPkgs'
pip install --user SomePackage
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.