web-dev-qa-db-fra.com

Comment puis-je faire un script python exécutable?

Comment puis-je exécuter un script python avec mon propre nom de ligne de commande comme 'myscript' sans avoir à faire 'python myscript.py' dans le terminal?

27
ctrlz
  1. Ajoutez une ligne Shebang en haut du script:

    #!/usr/bin/env python

  2. Marquez le script comme exécutable:

    chmod +x myscript.py

  3. Ajoutez le répertoire le contenant à votre variable PATH. (Si vous voulez qu'il colle, vous devrez le faire dans .bashrc ou .bash_profile dans votre répertoire personnel.)

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

41
tzaman

La meilleure façon, qui est multiplateforme, est de créer setup.py, définissez-y un point d'entrée et installez-le avec pip.

Supposons que vous ayez le contenu suivant de myscript.py:

def run():
    print('Hello world')

Ensuite, vous ajoutez setup.py avec les éléments suivants:

from setuptools import setup
setup(
    name='myscript',
    version='0.0.1',
    entry_points={
        'console_scripts': [
            'myscript=myscript:run'
        ]
    }
)

Le format du point d'entrée est terminal_command_name=python_script_name:main_method_name

Enfin, installez avec la commande suivante.

pip install -e /path/to/script/folder

-e signifie modifiable, ce qui signifie que vous pourrez travailler sur le script et invoquer la dernière version sans avoir à réinstaller

Après cela, vous pouvez exécuter myscript à partir de n'importe quel répertoire.

19
merrydeath

Je fais habituellement dans le script:

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

Et dans le terminal:

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

permission table

4
dAn