ターミナルで「python myscript.py」を実行せずに、「myscript」のような独自のコマンドライン名でpythonスクリプトを実行するにはどうすればよいですか?
スクリプトの先頭にシェバン行を追加します。
#!/usr/bin/env python
スクリプトを実行可能としてマークします。
chmod +x myscript.py
それを含むディレクトリをPATH
変数に追加します。 (このままにする場合は、.bashrc
または.bash_profile
ホームディレクトリにあります。)
export PATH=/path/to/script:$PATH
クロスプラットフォームの最良の方法は、setup.py
を作成し、その中にエントリポイントを定義し、pip
でインストールすることです。
次のmyscript.py
のコンテンツがあるとします:
def run():
print('Hello world')
次に、次のsetup.py
を追加します。
from setuptools import setup
setup(
name='myscript',
version='0.0.1',
entry_points={
'console_scripts': [
'myscript=myscript:run'
]
}
)
エントリポイントの形式はterminal_command_name=python_script_name:main_method_name
です
最後に、次のコマンドでインストールします。
pip install -e /path/to/script/folder
-e
は編集可能を表します。つまり、再インストールすることなく、スクリプトを操作して最新バージョンを呼び出すことができます。
その後、任意のディレクトリからmyscript
を実行できます。
私は通常スクリプトで行います:
#!/usr/bin/python
... code ...
そしてターミナルで:
$: chmod 755 yourfile.py
$: ./yourfile.py