私は同じ問題に遭遇しましたが、Windowsユーザー(Linuxからのユーザー)向けにコードをパッケージ化する必要があるという状況で発生しました。私のパッケージには、コマンドラインオプションを含む多数のスクリプトが含まれています。
コマンドラインから起動できるように、Windowsユーザーのマシンの適切な場所にこれらのスクリプトをインストールする必要があります。パッケージはおそらくユーザーフレンドリーであるため、ユーザーにレジストリを変更してこれらのスクリプトを実行するよう依頼することは不可能です。
Continuumの人々がAnacondaパッケージに付属しているPythonスクリプトに使用しているソリューションに出くわしました。例としてAnaconda / Scriptsディレクトリを確認してください。
Pythonスクリプトの場合は、test
a test.bat
とaの2つのファイルを作成しますtest-script.py
。
test.bat
次のように見えます(目的に合わせて変更した相対パス.bat
でAnaconda\Scripts
呼び出し中のファイルpython.exe
):
@echo off
set PYFILE=%~f0
set PYFILE=%PYFILE:~0,-4%-script.py
"python.exe" "%PYFILE%" %*
test-script.py
あなたの実際のPythonスクリプトです:
import sys
print sys.argv
これら2つのファイルをローカルディレクトリに残しておくと、次のようにして.bat
ファイルからPythonスクリプトを呼び出すことができます。
test.bat hello world
['C:\\...\\test-scripy.py', 'hello', 'world']
のような場所に両方のファイルをコピーする場合PATH
(などAnaconda\Scripts
)、.bat
接尾辞を省略してスクリプトを呼び出すこともできます。
test hello world
['C:\\...Anaconda\\Scripts\\test-scripy.py', 'hello', 'world']
免責事項:私は何が起こっているのか、これがどのように機能するのかわかりませんので、説明があれば幸いです。