1

DOSシェルコマンドライン(または.batファイル)から次のような構文でPythonスクリプトを呼び出したいと思います。

C:\python27\python myscript.py

スクリプトmyscript.pyは、ディレクトリにありc:\a_process\python_libます。パスを検索することでPythonにそのスクリプトを見つけさせることができるので、現在のディレクトリが任意の場合(のようにC:\junk)にスクリプトを呼び出すことができます。私の問題は、Pythonを呼び出すコマンドラインに示されているスクリプトにPythonが使用するパス(ある場合)がわからないことです。Pythonのドキュメント、SO、およびWebを検索しましたが、有益なものは何も見つかりませんでした。(Python自体の中でのコマンドライン解析に関する多くのことを見つけましたが、それは私が探しているものではありません)。

ディレクトリにadt_python_lib.pthファイルがあり、それが機能することを確認しました(そこにあるモジュールをインポートできます)。実験として、環境変数C:\Python27\Lib\site-packagesも設定しようとしました( DOSシェルに入力して行を確認することで確認できます)。PYTHONPATHSET

PYTHONPATH=C:\a_process\python_lib

出力で。その価値については、Pythonを呼び出して実行しましたがsys.path、実際C:\a_process\python_libにパスに期待どおりにリストされていることがわかります。['', 'c:\\a_process\\python_lib', ...]

私がこれに見つけた最も近いSOの質問は、Pythonプログラムの実行です。

これは、Python呼び出しコマンドラインで示されたファイルを検索するパスがないことを意味しているようです(ただし、記載されていません)。誰かがこれが正しいと正式に述べることができる場合は、別の方法に戻します(おそらく、スクリプトを直接追加c:\a_process\python_libして呼び出すだけです)。%PATH%

4

2 に答える 2

1

-m完全なファイル名を指定する代わりに、スイッチでモジュールを指定するだけです。

C:\python27\python -m myscript

PYTHONPATHこれは、ディレクトリが環境変数の一部であることを前提としています。

于 2013-03-21T19:34:27.660 に答える
0

思い通りにできるとは思えませんが...

Python コマンドを でラップし.bat、BAT ファイルをPATH. 次に.bat、どこからでも を呼び出すことができます (BAT ファイルで実行する Python スクリプトの場所を指定する際には、必ず絶対パスのみを使用してください)。

于 2013-03-21T19:17:47.447 に答える