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?
Ajoutez une ligne Shebang en haut du script:
#!/usr/bin/env python
Marquez le script comme exécutable:
chmod +x myscript.py
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
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.
Je fais habituellement dans le script:
#!/usr/bin/python
... code ...
Et dans le terminal:
$: chmod 755 yourfile.py
$: ./yourfile.py