¿Cómo puedo ejecutar un script en python con mi propio nombre de línea de comando como ‘myscript’ sin tener que hacer ‘myscript.py’ en el terminal?
Agregue una línea shebang a la parte superior de la secuencia de comandos:
#!/usr/bin/env python
Marque el script como ejecutable:
chmod +x myscript.py
Agregue el directorio que lo contiene a su variable PATH
. (Si desea que se pegue, tendrá que hacer esto en .bashrc
o .bash_profile
en su directorio de inicio).
export PATH=/path/to/script:$PATH
La mejor manera, que es multiplataforma, es crear setup.py
, definir un punto de entrada en él e instalarlo con pip
.
Digamos que tienes los siguientes contenidos de myscript.py
:
def run(): print('Hello world')
A continuación, agregue setup.py
con lo siguiente:
from setuptools import setup setup( name='myscript', version='0.0.1', entry_points={ 'console_scripts': [ 'myscript=myscript:run' ] } )
El formato del punto de entrada es terminal_command_name=python_script_name:main_method_name
Finalmente instalar con el siguiente comando.
pip install -e /path/to/script/folder
-e
significa editable, lo que significa que podrá trabajar en el script e invocar la última versión sin necesidad de volver a instalar
Después de eso puede ejecutar myscript
desde cualquier directorio.
Normalmente lo hago en el guión:
#!/usr/bin/python ... code ...
Y en la terminal:
$: chmod 755 yourfile.py $: ./yourfile.py