One place for hosting & domains

      entorno

      Cómo leer y configurar variables de entorno y de shell en Linux


      Introducción

      Cuando interactúa con su servidor a través una sesión de shell, hay muchos elementos de información que el shell compila para determinar su comportamiento y acceso a los recursos. Algunas de estas opciones se incluyen en las opciones de configuración, y otras las determina la entrada del usuario.

      Una forma en que el shell realiza un seguimiento de todas estas configuraciones y detalles es en un área que se denomina entorno. El entorno es un área que el shell crea cada vez que inicia una sesión que contiene variables que definen las propiedades del sistema.

      En esta guía, analizaremos cómo interactuar con el entorno y leer o configurar variables de entorno y de shell de forma interactiva y mediante archivos de configuración.

      Cómo funcionan el entorno y las variables de entorno

      Cada vez que se genera una sesión de shell, se lleva a cabo un proceso para recopilar y compilar información que debería estar disponible para el proceso de shell y sus procesos secundarios. Los datos para estas configuraciones se obtienen de diversos archivos y configuraciones en el sistema.

      El entorno proporciona un medio a través del que el proceso de shell puede obtener o establecer configuraciones y, a la vez, transmitirlas a sus procesos secundarios.

      El entorno se implementa como cadenas que representan pares clave-valor. Si se transmiten múltiples valores, estos suelen separarse mediante símbolos de dos puntos (:). Normalmente, cada par tendrá un aspecto similar a este:

      KEY=value1:value2:...
      

      Si el valor contiene un espacio en blanco significativo, se utilizan comillas:

      KEY="value with spaces"
      

      Las claves en estos casos son variables. Pueden ser de dos tipos: variables de entorno o variables de shell.

      Las variables de entorno son variables definidas para el shell actual y heredadas por cualquier shell o proceso secundario. Las variables de entorno se utilizan para transmitir información a procesos que se producen desde el shell.

      Las variables de shell son variables que se encuentran exclusivamente dentro del shell en que se configuraron o definieron. A menudo, se utilizan para realizar un seguimiento de datos efímeros, como el directorio actual de trabajo.

      Por costumbre, estos tipos de variables suelen definirse utilizando letras en mayúsculas. Esto ayuda a los usuarios a distinguir las variables de entorno en otros contextos.

      Impresión de variables de entorno y de shell

      Cada sesión de shell hace un seguimiento de sus propias variables de entorno y de shell. Podemos acceder a ellas de diferentes formas.

      Podemos ver una lista de todas nuestras variables de entorno usando los comandos env o printenv. En su estado predeterminado, deben funcionar exactamente igual:

      Output

      SHELL=/bin/bash TERM=xterm USER=demouser LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca:... MAIL=/var/mail/demouser PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games PWD=/home/demouser LANG=en_US.UTF-8 SHLVL=1 HOME=/home/demouser LOGNAME=demouser LESSOPEN=| /usr/bin/lesspipe %s LESSCLOSE=/usr/bin/lesspipe %s %s _=/usr/bin/printenv

      Esto es bastante típico del resultado de printenv y env. La diferencia entre los dos comandos es visible solamente en su funcionalidad más específica. Por ejemplo, con printenv, puede solicitar los valores de variables individuales:

      Output

      /bin/bash

      Por otro lado, env le permite modificar el entorno en que se ejecutan los programas transmitiendo un conjunto de definiciones de variables a un comando como el siguiente:

      • env VAR1="value" command_to_run command_options

      Dado que, como vimos anteriormente, los procesos secundarios suelen heredar las variables de entorno del proceso principal, esto le da la oportunidad de anular valores o agregar otras variables al proceso secundario.

      Como se puede ver en el resultado de nuestro comando printenv, hay algunas variables de entorno configuradas en los archivos y procesos de nuestro sistema sin nuestra intervención.

      Se muestran las variables de entorno, pero ¿cómo vemos las variables de shell?

      El comando set se puede utilizar para esto. Si escribimos set sin ningún otro parámetro, obtendremos una lista de todas las variables de shell, variables de entorno, variables locales y funciones de shell:

      Output

      BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() BASH_CMDS=() . . .

      Por lo general, es una lista enorme. Es recomendable canalizarla a un programa de buscapersonas para manejar con mayor facilidad la cantidad de resultados:

      La cantidad de información adicional que recibiremos será un poco abrumadora. Probablemente, no necesitemos saber todas las funciones de bash que se definen, por ejemplo.

      Podemos filtrar el resultado especificando que set debe funcionar en el modo POSIX, lo que no imprimirá las funciones del shell. Podemos ejecutarlo en un subshell para que no cambie nuestro entorno actual:

      Esto enumerará todas las variables de entorno y de shell que están definidas.

      Podemos intentar comparar este resultado con el resultado de los comandos env o printenv para intentar obtener una lista que incluya únicamente variables de shell, pero el resultado no será preciso por las diferentes formas en que estos comandos generan información:

      • comm -23 <(set -o posix; set | sort) <(env | sort)

      Esto probablemente seguirá incluyendo algunas variables de entorno, debido a que el comando set genera valores entre comillas, mientras que los comandos printenv y env no generan los valores de las cadenas entre comillas.

      Aún así, le dará una buena idea de las variables de entorno y de shell que se configuran en su sesión.

      Estas variables se utilizan para toda clase de cosas. Proporcionan una forma alternativa de establecer valores persistentes para la sesión entre procesos, sin realizar cambios en un archivo.

      Variables frecuentes de entorno y de shell

      Algunas variables de entorno y de shell son muy útiles y se utilizan con bastante frecuencia. Aquí hay algunas variables frecuentes de entorno con las que se encontrará:

      • SHELL: Describe el shell que interpretará cualquier comando que ingrese. En la mayoría de los casos, será bash de forma predeterminada, pero se pueden establecer otros valores si prefiere otras opciones.
      • TERM: Especifica el tipo de terminal a emular cuando se ejecuta el shell. Se pueden emular diferentes terminales de hardware para diferentes requisitos de funcionamiento. Sin embargo, generalmente no tendrá que preocuparse por esto.
      • USER: El usuario que inició sesión actualmente.
      • PWD: El directorio actual de trabajo.
      • OLDPWD: El directorio anterior de trabajo. Esto se mantiene en el shell para volver a su directorio anterior ejecutando cd -.
      • LS_COLORS: Define los códigos de color que se utilizan para añadir de forma opcional un resultado de color al comando ls. Esto se utiliza para distinguir diferentes tipos de archivos y proporcionar más información al usuario de forma rápida.
      • MAIL: La ruta al buzón del usuario actual.
      • PATH: Una lista de directorios que el sistema comprobará cuando busque comandos. Cuando un usuario escriba un comando, el sistema comprobará los directorios en este orden para el ejecutable.
      • LANG: Las configuraciones actuales de idioma y localización, incluida la codificación de caracteres.
      • HOME: El directorio principal del usuario actual.
      • _: El comando más reciente ejecutado anteriormente.

      Además de estas variables de entorno, algunas variables de shell que aparecerán a menudo son:

      • BASHOPTS: La lista de opciones que se utilizaron cuando se ejecutó bash. Esto puede ser útil para averiguar si el entorno de shell funcionará de la forma que usted desea.
      • BASH_VERSION: La versión de bash que se está ejecutando, en un formato que los usuarios puedan leer.
      • BASH_VERSINFO: La versión de bash, en un resultado que un equipo pueda leer.
      • COLUMNS: El número de ancho de columnas que se utilizan para generar el resultado en la pantalla.
      • DIRSTACK: La pila de directorios que están disponibles con los comandos pushd y popd.
      • HISTFILESIZE: La cantidad de líneas del historial de comandos que se almancenan en un archivo.
      • HISTSIZE: La cantidad de líneas del historial de comandos que se permiten en la memoria.
      • HOSTNAME: El nombre de host de la computadora en este momento.
      • IFS: El separador de campo interno para separar las entradas en la línea de comandos. De forma predeterminada, es un espacio.
      • PS1: La definición de la entrada del comando principal. Esto se utiliza para definir cómo se ve la entrada de la línea de comandos cuando se inicia una sesión de shell. PS2 se utiliza para declarar las entradas de la línea de comandos secundarias para cuando un comando se extiende a varias líneas.
      • SHELLOPTS: Opciones de shell que se pueden configurar con la opción set.
      • UID: El UID del usuario actual.

      Configuración de variables de entorno y de shell

      Para entender mejor la diferencia entre las variables de entorno y de shell, y para introducir la sintaxis para configurar estas variables, haremos una pequeña demostración.

      Creación de variables de shell

      Empezaremos definiendo una variable de shell en nuestra sesión actual. Esto es fácil de lograr; solo necesitamos especificar un nombre y un valor. Seguiremos la norma de mantener el nombre de la variable en mayúsculas y lo configuraremos en una cadena simple.

      Aquí utilizamos comillas, ya que el valor de nuestra variable contiene un espacio. Además, usamos comillas simples porque el signo de exclamación es un carácter especial en el shell de bash que generalmente se expande al historial de bash si no se escapa o se introduce en comillas simples.

      Ahora, tenemos una variable de shell. Esta variable está disponible en nuestra sesión actual, pero no se transmitirá a los procesos secundarios.

      Podemos ver esto realizando una búsqueda de nuestra nueva variable en el resultado de set:

      Output

      TEST_VAR='Hello World!'

      Podemos verificar que esta no es una variable de entorno intentando lo mismo con printenv:

      No debería aparecer ningún resultado.

      Aprovecharemos esto como una oportunidad para demostrar una forma de acceder al valor de cualquier variable de entorno o de shell.

      Output

      Hello World!

      Como se puede ver, se hace referencia al valor de una variable al precederla con un signo $. El shell interpreta que esto significa que debe sustituir el valor de la variable cuando se encuentre con casos como este.

      Ahora tenemos una variable de shell. No debería transmitirse a ningún proceso secundario. Podemos generar un nuevo shell de bash desde el actual para demostrar:

      Si escribimos bash para generar un shell secundario y, luego, intentamos acceder al contenido de la variable, no se obtendrá ningún resultado. Eso es lo que esperábamos.

      Vuelva a nuestro shell original escribiendo exit:

      Creación de variables de entorno

      Ahora, vamos a convertir nuestra variable de shell en una variable de entorno. Podemos hacer esto exportando la variable. El comando para hacerlo se denomina correctamente:

      Esto convertirá nuestra variable en una variable de entorno. Podemos verificar que el cambio se realizó revisando nuevamente nuestra lista de variables de entorno:

      Output

      TEST_VAR=Hello World!

      Esta vez, aparecerá nuestra variable. Intentemos nuestro experimento de nuevo con nuestro shell secundario:

      Output

      Hello World!

      ¡Genial! Nuestro shell secundario recibió la variable establecida por el shell principal. Antes de salir de este shell secundario, intentemos exportar otra variable. Podemos configurar variables de entorno en un solo paso de esta manera:

      • export NEW_VAR="Testing export"

      Esta es una prueba de que se exportó como variable de entorno:

      Output

      NEW_VAR=Testing export

      Ahora, regresemos a nuestro shell original:

      Veamos si nuestra nueva variable está disponible:

      No se muestra ningún resultado.

      Esto se debe a que las variables de entorno solo se transmiten a procesos secundarios. No hay una forma incorporada de configurar variables de entorno del shell principal. Eso es bueno en la mayoría de casos y evita que los programas afecten al entorno de funcionamiento desde el que fueron invocados.

      La variable NEW_VAR se configuró como una variable de entorno en nuestro shell secundario. Esta variable estaría disponible para sí misma y para cualquiera de sus shells y procesos secundarios. Cuando regresemos a nuestro shell principal, el entorno se eliminará.

      Degradación y anulación de variables

      Todavía tenemos nuestra variable TEST_VAR definida como una variable de entorno. Podemos volver a convertirla en una variable de shell escribiendo:

      Ya no es una variable de entorno:

      Sin embargo, aún es una variable de shell:

      Output

      TEST_VAR='Hello World!'

      Si queremos anular por completo una variable, de shell o de entorno, podemos hacerlo con el comando unset:

      Podemos verificar que ya no está configurada:

      No se genera ningún resultado porque la variable se anuló.

      Configuración de variables de entorno al iniciar sesión

      Ya mencionamos que muchos programas utilizan variables de entorno para decidir los detalles de cómo operar. No queremos tener que configurar variables importantes cada vez que iniciemos una nueva sesión de shell, y ya vimos cuántas variables ya están configuradas al iniciar sesión, entonces ¿cómo creamos y definimos las variables automáticamente?

      En realidad, este es un problema más complejo de lo que parece inicialmente debido a los numerosos archivos de configuración que el shell de bash lee dependiendo de cómo se inicie.

      Diferencia entre las sesiones de shell interactivas, no interactivas, con inicio de sesión y sin inicio de sesión

      El shell de bash lee diferentes archivos de configuración dependiendo de cómo se inicia la sesión.

      Una distinción entre las diferentes sesiones es si el shell se genera como una sesión con inicio de sesión o sin inicio de sesión.

      Un shell con inicio de sesión es una sesión de shell que comienza cuando se autentica al usuario. Si inicia sesión en una sesión de terminal o mediante SSH y realiza una autenticación, la sesión de shell se configurará como un shell con inicio de sesión.

      Si inicia una nueva sesión de shell desde la sesión autenticada, como hicimos invocando al comando bash desde el terminal, se inicia una sesión de shell sin inicio de sesión. No se solicitaron sus detalles de autenticación cuando inició su shell secundario.

      Otra distinción que se puede hacer es si una sesión de shell es interactiva o no interactiva.

      Una sesión de shell interactiva es una sesión de shell que se conecta a un terminal. Una sesión de shell no interactiva es una que no se conecta a una sesión de terminal.

      Cada sesión de shell se clasifica como una sesión con inicio de sesión o sin inicio de sesión y como interactiva o no interactiva.

      Una sesión normal que comienza con SSH suele ser un shell con inicio de sesión interactivo. Normalmente, una secuencia de comandos ejecutada desde la línea de comandos se ejecuta en un shell no interactivo y sin inicio de sesión. Una sesión de terminal puede ser cualquier combinación de estas dos propiedades.

      Si una sesión de shell se clasifica como un shell con inicio de sesión o un shell sin inicio de sesión, tiene repercusiones sobre qué archivos se leen para iniciar la sesión de shell.

      Una sesión iniciada como sesión con inicio de sesión leerá primero los detalles de la configuración del archivo /etc/profile. Luego, buscará el primer archivo de configuración de shell con inicio de sesión en el directorio principal del usuario para obtener detalles de configuración específicos del usuario.

      Lee el primer archivo que puede encontrar con ~/.bash_profile, ~/.bash_login y ~/.profile, y no lee ningún otro archivo.

      Por el contrario, una sesión definida como shell sin inicio de sesión leerá /etc/bash.bashrc y, luego, el archivo ~/.bashrc específico del usuario para crear su entorno.

      Los shells no interactivos leen la variable de entorno llamada BASH_ENV y leen el archivo especificado para definir el nuevo entorno.

      Implementación de variables de entorno

      Como se puede ver, hay diversos archivos que generalmente necesitaríamos revisar para realizar nuestra configuración.

      Eso ofrece gran flexibilidad que puede ser útil en situaciones específicas en que queremos ciertas configuraciones en un shell con inicio de sesión y otras configuraciones en un shell sin inicio de sesión. Sin embargo, la mayoría de las veces preferiremos las mismas configuraciones en ambas situaciones.

      Por suerte, la mayoría de las distribuciones de Linux configura los archivos de configuración con inicio de sesión para obtener los archivos de configuración sin inicio de sesión. Eso significa que puede definir variables de entorno que quiera que sean de ambos tipos de sesión dentro de los archivos de configuración sin inicio de sesión. Luego, se leerán en ambos casos.

      Por lo general, configuraremos variables de entorno específicas de usuario y, normalmente, preferiremos que nuestras configuraciones estén disponibles en shells con inicio de sesión y sin inicio de sesión. Eso significa que el lugar para definir estas variables está en el archivo ~/.bashrc.

      Abra este archivo ahora:

      Lo más probable es que ya contenga bastantes datos. Muchas de las definiciones aquí son para configurar opciones de bash, que no están relacionadas con variables de entorno. Puede configurar variables de entorno de la misma manera en que lo haría en la línea de comandos:

      Cualquier nueva variable de entorno se puede añadir en cualquier lugar del archivo ~/.bashrc, siempre que no se coloque en el medio de otro comando o para crear un bucle. Luego, podemos guardar y cerrar el archivo. La próxima vez que inicie una sesión de shell, su declaración de variable de entorno se leerá y pasará al entorno de shell. Puede forzar su sesión actual a leer el archivo escribiendo lo siguiente:

      Si necesita configurar variables para todo el sistema, es recomendable añadirlas a /etc/profile, /etc/bash.bashrc o /etc/environment.

      Conclusión

      Las variables de entorno y de shell siempre están presentes en las sesiones de shell y pueden ser muy útiles. Son una forma interesante para que un proceso principal establezca los detalles de la configuración para sus procesos secundarios y son una forma de configurar opciones fuera de los archivos.

      Eso tiene muchas ventajas en situaciones específicas. Por ejemplo, algunos mecanismos de implementación utilizan las variables de entorno para configurar la información de autenticación. Eso es útil porque no requiere guardarlos en archivos que terceros puedan ver.

      Hay muchos otros casos más triviales, pero también más frecuentes, en que deberá leer o alterar el entorno de su sistema. Estas herramientas y técnicas le darán una buena base para realizar estos cambios y usarlos correctamente.



      Source link

      Cómo instalar Django y configurar un entorno de desarrollo en Ubuntu 20.04


      Introducción

      Django es un marco de trabajo web de código abierto y gratuito escrito en Python y sus principios básicos son la escalabilidad, la reutilización y el desarrollo rápido. También es conocido por su consistencia y acoplamiento suelto a nivel de marco de trabajo, lo cual permite que los componentes individuales sean independientes entre sí.

      A través este tutorial, configuraremos un entorno de Django para desarrollo en un servidor de Ubuntu 20.04. Para un sitio web activo, deberá considerar aspectos adicionales, como la conexión a una base de datos, la configuración de un nombre de dominio y la adición de capas de seguridad. Disponemos de varios tutoriales sobre Django que pueden servirle al realizar compilaciones que lleven nuestra etiqueta de Django.

      Requisitos previos

      Para completar este tutorial, necesitará lo siguiente:

      Paso 1: Instalar Django

      Existen varias formas de instalar Django, el pip del administrador de paquetes de Python, en un entorno virtual.

      En el directorio principal del servidor, crearemos el directorio que contendrá nuestra aplicación de Django. Ejecute el siguiente comando para crear un directorio que tenga el nombre django-apps o cualquier otro que elija. Luego, diríjase al directorio.

      • mkdir django-apps
      • cd django-apps

      Dentro del directorio django-apps, cree su entorno virtual. Lo citaremos como env​​ genérico, pero debe utilizar un nombre que sea significativo para usted y su proyecto.

      Ahora, active el entorno virtual con el siguiente comando:

      Sabrá que se activará una vez que el prefijo cambie a (env), el cual, según directorio en el que usted se encuentre, tendrá un aspecto similar al siguiente:

      Dentro del entorno, instale el paquete Django utilizando pip. Instalar Django nos permite crear y ejecutar aplicaciones Django.

      Una vez completada la instalación de Django, verifíquela ejecutando una comprobación de la versión:

      El resultado será igual o algo similar a este:

      Output

      3.0.6

      Con Django instalado en su servidor, podemos proceder a crear un proyecto de prueba para asegurarnos de que todo funcione correctamente. Crearemos una aplicación web de esquema.

      Paso 2: Ajustar la configuración del firewall

      Si siguió el tutorial de configuración inicial para servidores o tiene un firewall en ejecución en su servidor, tendremos que abrir el puerto que utilizaremos en el firewall de nuestro servidor. Para el firewall UFW, puede abrir el puerto con el siguiente comando:

      Si utiliza los firewalls de DigitalOcean, puede seleccionar HTTP desde las reglas de entrada. Puede obtener más información sobre los firewalls de DigitalOcean y crear reglas para ellos modificando las reglas de entrada.

      Paso 3: Iniciar el proyecto

      Ahora podemos generar una aplicación utilizando django-admin, una utilidad de línea de comandos para tareas de administración en Python. Luego, podemos utilizar el comando startproject para crear la estructura del directorio del proyecto para nuestro sitio web de prueba.

      En el directorio django-apps, ejecute el siguiente comando:

      • django-admin startproject testsite

      Nota: Ejecutar el comando django-admin startproject <projectname> asignará tanto al directorio del proyecto como al paquete del proyecto el nombre <projectname> y creará el proyecto en el directorio en el que se ejecutó el comando. Si se proporciona el parámetro opcional <destination>, Django utilizará el directorio de destino proporcionado como directorio del proyecto, y creará manage.py y el paquete del proyecto dentro de él.

      Ahora podemos ver los archivos del proyecto que acabamos de crear. Diríjase al directorio testsite y, luego, enumere el contenido del directorio para ver los archivos que se crearon:

      Output

      manage.py testsite

      Notará que el resultado que muestra este directorio contiene un archivo llamado manage.py y una carpeta llamada testsite. El archivo manage.py es similar a django-admin y dispone el paquete del proyecto en sys.path. Esto también establece la variable de entorno DJANGO_SETTINGS_MODULE para apuntar al archivo settings.py de su proyecto.

      Puede ver la secuencia de comandos manage.py en su terminal ejecutando el comando less de la siguiente manera:

      Cuando termine de leer la secuencia de comandos, presione q para cerrar la vista del archivo.

      Ahora, diríjase al directorio testsite para ver los demás archivos que se crearon:

      Luego, ejecute el siguiente comando para enumerar el contenido del directorio:

      Verá cuatro archivos:

      Output

      __init__.py asgi.py settings.py urls.py wsgi.py

      Veamos qué hay en cada uno de estos archivos:

      • __init__.py funciona como punto de entrada para su proyecto de Python.
      • asgi.py contiene la configuración para la implementación opcional en la interfaz de puerta de enlace de servidor asíncrono o ASGI, que proporciona un estándar para las apps que son sincronizadas o ASGI, y se considera como sucesor de WSGI (ver a continuación).
      • settings.py describe la configuración de la instalación de Django e indica a este la configuración disponible.
      • urls.py contiene una lista de urlpatterns que enruta y asigna URL a sus views.
      • wsgi.py contiene la configuración para la interfaz de puerta de enlace de servidor web o WSGI, que proporciona un estándar para las apps síncronas de Python.

      Nota: Aunque se generen archivos predeterminados, aún tiene la capacidad de modificar los archivos asgi.py o wsgi.py en cualquier momento para satisfacer sus necesidades de implementación.

      Paso 4: Configurar Django

      Ahora podemos iniciar el servidor y ver el sitio web en un host y puerto designados ejecutando el comando runserver.

      Deberá añadir la dirección ip de su servidor a la lista ALLOWED_HOSTS en el archivo settings.py ubicado en ~/test_django_app/testsite/testsite/.

      Como se indica en los documentos de Django, la variable ALLOWED_HOSTS contiene “una lista de cadenas que representa los nombres de host/dominio que este sitio de Django puede proporcionar. Esta es una medida de seguridad para evitar ataques a encabezados de host HTTP, que son posibles incluso con muchas configuraciones de servidores web aparentemente seguras”.

      Puede utilizar su editor de texto favorito para añadir su dirección IP. Por ejemplo, si utiliza nano, ejecute el siguiente comando:

      • nano ~/django-apps/testsite/testsite/settings.py

      Una vez que ejecute el comando, le convendrá dirigirse a la sección de hosts permitidos del documento y añadir la dirección IP de su servidor dentro de los corchetes y entre comillas individuales o dobles.

      settings.py

      """
      Django settings for testsite project.
      
      Generated by 'django-admin startproject' using Django 2.0.
      ...
      """
      ...
      # SECURITY WARNING: don't run with debug turned on in production!
      DEBUG = True
      
      # Edit the line below with your server IP address
      ALLOWED_HOSTS = ['your-server-ip']
      ...
      

      Puede guardar el cambio y salir de nano presionando CTRL + x y luego presionando y. Luego, accederemos a nuestra app web a través de un navegador.

      Paso 5: Acceder a la app web de Django

      Una vez completada nuestra configuración, asegúrese de regresar al directorio en el que se ubica manage.py:

      • cd ~/django-apps/testsite/

      Ahora, ejecute el siguiente comando reemplazando el texto your-server-ip por el IP de su servidor:

      • python manage.py runserver 0.0.0.0:8000

      Por último, puede dirigirse al siguiente enlace para ver el aspecto del esquema de su sitio web y reemplazar nuevamente el texto resaltado por el IP real de su servidor:

      http://your-server-ip:8000/
      

      Una vez que la página se cargue, verá lo siguiente:

      Página predeterminada de Django

      Esto confirma que Django se instaló de forma correcta y que nuestro proyecto de prueba funciona correctamente.

      Para acceder a la interfaz de administrador, añada /admin/ al final de su URL:

      http://your_server_ip:8000/admin/
      

      Con esto, accederá a una pantalla de inicio de sesión:

      Inicio de sesión de administrador en Django

      Si introduce el nombre de usuario y la contraseña de administrador que acaba de crear, tendrá acceso a la sección principal de administración del sitio:

      Página de administración de Django

      Para obtener más información sobre cómo trabajar con la interfaz de administración de Django, consulte “Cómo habilitar y conectar la interfaz de administración de Django”.

      Cuando termine de probar su app, puede presionar CTRL + C para detener el comando runserver. Con esto, regresará a su entorno de programación.

      Cuando esté listo para salir de su entorno de Python, puede ejecutar el comando deactivate:

      Al desactivar su entorno de programación, regresará a la línea de comandos del terminal.

      Conclusión

      A través de este tutorial, instaló Django y configuró un entorno de desarrollo correctamente para comenzar a trabajar en su app de Django.

      Ahora cuenta con la estructura necesaria para comenzar a compilar aplicaciones web de Django.



      Source link

      Cómo instalar Python 3 y configurar un entorno de programación en un servidor de Ubuntu 20.04


      Introducción

      El lenguaje de programación Python es una opción cada vez más popular para desarrolladores principiantes y experimentados. Flexible y versátil, Python tiene puntos fuertes en la creación de secuencias de comandos, el análisis de datos, el aprendizaje automático y el desarrollo back-end. Su primera publicación se realizó en 1991 con un nombre inspirado en el grupo de comedia británico Monty Python; el equipo de desarrollo quería que usar este lenguaje fuera divertido.

      Este tutorial le permitirá configurar su servidor Ubuntu 20.04 con un entorno de programación Python 3. La programación en un servidor tiene muchas ventajas y permite la colaboración en proyectos de desarrollo. Los principios generales de este tutorial se aplicarán a cualquier distribución de Debian Linux.

      Requisitos previos

      Para completar este tutorial, debe tener un non-root user con privilegios sudo en un servidor de Ubuntu 20.04. Para aprender a realizar esta configuración, siga nuestra Guía de configuración inicial del servidor.

      Si aún no está familiarizado con un entorno de terminal, posiblemente le resulte útil el artículo “Introducción al terminal de Linux” para orientarse mejor respecto del terminal.

      Una vez configurados su servidor y usuario, estará listo para comenzar.

      Paso 1: Configurar Python 3

      Ubuntu 20.04 y otras versiones de Debian Linux se entregan con Python 3 preinstalado. Para asegurarnos de que nuestras versiones estén actualizadas, actualizaremos y mejoraremos el sistema con el comando apt para que funcione con Advanced Packaging Tool de Ubuntu:

      • sudo apt update
      • sudo apt -y upgrade

      El indicador -y confirmará que estamos de acuerdo en que se instalen todos los elementos, pero según la versión de Linux es posible que deba confirmar avisos adicionales a medida que se actualice el sistema.

      Una vez completado el proceso, podemos comprobar la versión de Python 3 instalada en el sistema escribiendo lo siguiente:

      En la ventana del terminal, verá un resultado que le permitirá conocer el número de versión. Aunque este número puede variar, el resultado será similar a este:

      Output

      Python 3.8.2

      Para gestionar los paquetes de software para Python, instalaremos pip, una herramienta que instalará y gestionará los paquetes de programación que queramos utilizar en nuestros proyectos de desarrollo. Puede aprender más sobre los módulos o paquetes que puede instalar con pip leyendo “Cómo importar módulos en Python 3“.

      • sudo apt install -y python3-pip

      Los paquetes de Python pueden instalarse escribiendo lo siguiente:

      • pip3 install package_name

      Aquí, package_name puede referirse a cualquier paquete o biblioteca de Python, como Django para el desarrollo web o NumPy para la informática científica. Por lo tanto, si desea instalar NumPy puede hacerlo con el comando pip3 install numpy.

      Hay más paquetes y herramientas de desarrollo que debemos instalar para asegurarnos de contar con una configuración sólida para nuestro entorno de programación:

      • sudo apt install -y build-essential libssl-dev libffi-dev python3-dev

      Una vez que Python esté configurado, y pip y otras herramientas estén instaladas, podremos establecer un entorno virtual para nuestros proyectos de desarrollo.

      Paso 2: Configurar un entorno virtual

      Los entornos virtuales le permiten tener un espacio aislado en su servidor para proyectos de Python. Esto garantiza que cada uno de sus proyectos pueda tener su propio conjunto de dependencias que no interfieran en ninguno de sus otros proyectos.

      Configurar un entorno de programación nos proporciona un mayor control sobre nuestros proyectos de Python y sobre la forma en que se manejan las diferentes versiones de los paquetes. Esto tiene particular importancia al trabajar con paquetes de terceros.

      Puede configurar tantos entornos de programación Python como quiera. Cada entorno es básicamente un directorio o una carpeta de su servidor que tiene secuencias de comandos para que actúe como un entorno.

      Aunque hay algunas formas de lograr un entorno de programación en Python, en este caso utilizaremos el módulo venv, que forma parte de la biblioteca estándar de Python 3. Instalemos venv escribiendo lo siguiente:

      • sudo apt install -y python3-venv

      Una vez instalado esto, estaremos listos para crear entornos. Elegiremos el directorio en el que deseamos disponer nuestros entornos de programación de Python o crearemos un nuevo directorio con mkdir, como a continuación:

      • mkdir environments
      • cd environments

      Una vez que se encuentre en el directorio en el que desea que estén los entornos, puede crear uno ejecutando el siguiente comando:

      Básicamente, pyvenv configura un nuevo directorio que contiene algunos elementos que podemos ver con el comando ls:

      Output

      bin include lib lib64 pyvenv.cfg share

      Juntos, estos archivos garantizan que sus proyectos estén aislados del contexto más amplio de su ,servidor de modo que los archivos de sistema y los archivos de proyecto no se mezclen. Esta es una práctica recomendada para el control de versiones y para garantizar que cada uno de sus proyectos tenga acceso a los paquetes particulares que necesita. Python Wheels, un formato de paquete integrado para Python que puede acelerar la producción de su software reduciendo el número de veces que necesita realizar compilaciones, estará en el directorio share de Ubuntu 20.04.

      Para utilizar este entorno, debe activarlo escribiendo el siguiente comando que llama a la secuencia de comandos active:

      • source my_env/bin/activate

      El símbolo del sistema ahora llevará como prefijo el nombre de su entorno; en este caso, el nombre es my_env. Según la versión de Debian Linux de la que disponga, su prefijo puede ser diferente, pero el nombre de su entorno entre paréntesis debería ser lo primero que vea en su línea:

      Este prefijo nos permite saber que el entorno my_env está actualmente activo, lo cual significa que cuando creemos programas aquí estos usarán solo la configuración y los paquetes de este entorno en particular.

      Nota: Dentro del entorno virtual, puede utilizar el comando python en lugar de python3 y pip en lugar de pip3, si lo prefiere. Si utiliza Python 3 en su máquina fuera de un entorno, deberá utilizar los comandos python3 y pip3.

      Una vez completados estos pasos, su entorno virtual estará listo para utilizarse.

      Paso 3: Crear un programa “Hello, World”

      Ahora que configuramoss nuestro entorno virtual, crearemos un programa tradicional de “Hello, Mundo!”. Esto nos permitirá probar nuestro entorno y nos dará la oportunidad de familiarizarnos más con Python si no lo conocemos ya.

      Para ello, abriremos un editor de texto de línea de comandos como nano y crearemos un nuevo archivo:

      Una vez que el archivo de texto se abra en la ventana de la terminal, escribiremos nuestro programa:

      print("Hello, World!")
      

      Cierre nano con las teclas CTRL y X, y cuando se le solicite guardar el archivo pulse y.

      Una vez que cierre nano y regrese a su shell, ejecutaremos el programa:

      El programa hello.py que acaba de crear debería hacer que su terminal genere el siguiente resultado:

      Output

      Hello, World!

      Para salir del entorno, escriba el comando deactivate . Con esto volverá a su directorio original.

      Conclusión

      ¡Felicitaciones! En este momento, tiene un entorno de programación Python 3 configurado en su servidor Ubuntu Linux y ya puede comenzar un proyecto de codificación.

      Si utiliza una máquina local en lugar de un servidor, consulte el tutorial correspondiente a su sistema operativo en nuestra serie “Cómo instalar y configurar un entorno de programación local para Python 3”.

      Una vez que tenga listo su servidor para el desarrollo de software, podrá continuar aprendiendo más sobre la codificación en Python leyendo nuestro libro electrónico gratuito Cómo codificar en Python 3 o consultando nuestros tutoriales de Python.



      Source link