Guiones de línea de comandos | Empaquetado de Python

¿Cómo ejecutamos cualquier script en Python?

$ python do_something.py
$ python do_something_with_args.py gfg vibhu

Probablemente así es como lo haces.
Si su respuesta fue que simplemente hace clic en un botón en su IDE para ejecutar su código de Python, suponga que se le preguntó específicamente cómo lo hace en la línea de comandos.

Hagámoslo más fácil para ti.

$ do_something
$ do_something_with_args gfg vibhu

Seguro que se ve mucho más limpio. Básicamente, son solo sus scripts de python convertidos en herramientas de línea de comandos. En este artículo, discutiremos cómo puede hacerlo usted mismo.

El proceso se puede dividir en estos 6 pasos:

  1. Cree su secuencia de comandos de línea de comandos.
  2. Configuración de archivos y estructura de carpetas para Packaging.
  3. Modifique su setup.pyarchivo para incorporar sus scripts CLI.
  4. Pruebe su paquete antes de publicarlo y luego construya.
  5. Cargue en pypi y publique su paquete.
  6. Instale su paquete recién publicado.

Los dos primeros pasos están ampliamente cubiertos en sus respectivos artículos. Se recomienda echarles un vistazo antes de seguir adelante. Este artículo continuará principalmente desde el Paso 3.

Paso #1: Cree su secuencia de comandos de línea de comandos
-> gfg.py

import argparse
  
def main():
  
    parser = argparse.ArgumentParser(prog ='gfg',
                                     description ='GfG article demo package.')
  
    parser.add_argument('integers', metavar ='N', type = int, nargs ='+',
                        help ='an integer for the accumulator')
    parser.add_argument('-greet', action ='store_const', const = True,
                        default = False, dest ='greet',
                        help ="Greet Message from Geeks For Geeks.")
    parser.add_argument('--sum', dest ='accumulate', action ='store_const',
                        const = sum, default = max,
                        help ='sum the integers (default: find the max)')
  
    args = parser.parse_args()
  
    if args.greet:
        print("Welcome to GeeksforGeeks !")
        if args.accumulate == max:
            print("The Computation Done is Maximum")
        else:
            print("The Computation Done is Summation")
        print("And Here's your result:", end =" ")   
  
    print(args.accumulate(args.integers))

 
Paso n.º 2: Configuración de archivos y estructura de carpetas

 
Paso n.º 3: Modificar el archivo setup.py

Setuptools permite que los módulos registren puntos de entrada ( entry_points) a los que otros paquetes pueden conectarse para proporcionar cierta funcionalidad. También proporciona algunos, incluido el console_scriptspunto de entrada. ¡Esto permite que las funciones
de Python (¡no los scripts!) se registren directamente como herramientas accesibles desde la línea de comandos! -> configuración.py

from setuptools import setup, find_packages
  
with open('requirements.txt') as f:
    requirements = f.readlines()
  
long_description = 'Sample Package made for a demo \
      of its making for the GeeksforGeeks Article.'
  
setup(
        name ='vibhu4gfg',
        version ='1.0.0',
        author ='Vibhu Agarwal',
        author_email ='vibhu4agarwal@gmail.com',
        url ='https://github.com/Vibhu-Agarwal/vibhu4gfg',
        description ='Demo Package for GfG Article.',
        long_description = long_description,
        long_description_content_type ="text/markdown",
        license ='MIT',
        packages = find_packages(),
        entry_points ={
            'console_scripts': [
                'gfg = vibhu4gfg.gfg:main'
            ]
        },
        classifiers =(
            "Programming Language :: Python :: 3",
            "License :: OSI Approved :: MIT License",
            "Operating System :: OS Independent",
        ),
        keywords ='geeksforgeeks gfg article python package vibhu4agarwal',
        install_requires = requirements,
        zip_safe = False
)

 
Paso n.º 4: prueba y prueba de compilación
: cambie el directorio al nivel superior de su paquete, el mismo con setup.pyel archivo.
Instale su paquete deseado escribiendo este comando.

$ python3 setup.py install

Esto instalará su paquete si no hay errores en la configuración.
Ahora puedes probar todas las funcionalidades de tu paquete. Si algo sale mal, aún puedes arreglar las cosas.

Compilación: asegúrese de haber actualizado la versión de pip junto con la versión más reciente setuptoolsy wheel. Ahora use este comando para crear distribuciones de su paquete.

$ python3 setup.py sdist bdist_wheel

 
Paso #5: Publicar el paquete
twine es una biblioteca que lo ayuda a cargar las distribuciones de su paquete en pypi. Antes de ejecutar el siguiente comando, asegúrese de tener una cuenta en PyPI

$ twine upload dist/*

Proporcionar las Credenciales y ¡Listo! Acaba de publicar su primer paquete de Python en PyPI.
 
Paso #6: Instale el paquete
Ahora instale su paquete recién publicado usando pip.

$ pip install vibhu4gfg

Tocar.

$ gfg
usage: gfg [-h] [-greet] [--sum] N [N ...]
gfg: error: the following arguments are required: N

$ gfg -h
usage: gfg [-h] [-greet] [--sum] N [N ...]

GfG article demo package.

positional arguments:
  N           an integer for the accumulator

optional arguments:
  -h, --help  show this help message and exit
  -greet      Greet Message from Geeks For Geeks.
  --sum       sum the integers (default: find the max)

$ gfg 5 10 15 -greet
Welcome to GeeksforGeeks!
The Computation Done is Maximum
And Here's your result: 15

$ gfg 5 10 15 -greet --sum
Welcome to GeeksforGeeks!
The Computation Done is Summation
And Here's your result: 30

Referencia: https://python-packaging.readthedocs.io/en/latest/command-line-scripts.html

Publicación traducida automáticamente

Artículo escrito por vibhu4agarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *