web-dev-qa-db-ja.com

pythonスクリプトを実行可能にする方法は?

ターミナルで「python myscript.py」を実行せずに、「myscript」のような独自のコマンドライン名でpythonスクリプトを実行するにはどうすればよいですか?

27
ctrlz
  1. スクリプトの先頭にシェバン行を追加します。

    #!/usr/bin/env python

  2. スクリプトを実行可能としてマークします。

    chmod +x myscript.py

  3. それを含むディレクトリをPATH変数に追加します。 (このままにする場合は、.bashrcまたは.bash_profileホームディレクトリにあります。)

    export PATH=/path/to/script:$PATH

41
tzaman

クロスプラットフォームの最良の方法は、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を実行できます。

19
merrydeath

私は通常スクリプトで行います:

#!/usr/bin/python
... code ...

そしてターミナルで:

$: chmod 755 yourfile.py
$: ./yourfile.py

permission table

4
dAn