[Python] Hilo general

desu

#1286 A mi tambien me dan problemas los linters y auto format. Como lo has configurado a mano?

Usas WSL? Yo voy con WSL.

1 respuesta
B

#1291 no, uso Windows 10 o Ubuntu.

En Ubuntu cuando activo el entorno con poetry Shell sí me sale el entorno en la consola activado, mientras que en Windows solo me salió una vez en la consola de visual studio tras hacer el poetry shell y abrir visual estudio con Code . Pero solo una vez, las demás no me sale, aunque esté el entorno activo no tengo indicación alguna.

Aquí tienes como configurarlo a mano:
https://farr.ai/vs-code-python-setup.html

Tienes gif de cada cosa. Si no lo hago así, no me funciona... Ya que desde F1 poniendo select formatter y demás no me salía 🤷‍♂️

1 respuesta
eondev

#1292 a quién no le funciona?

2 respuestas
HeXaN

Yo tengo una extensión para seleccionar el entorno que quiera y funciona sin problemas con los que crea Poetry.

1 respuesta
B

#1293 a mí. Me funciona pero he tenido que configurarlo a mano como digo.

Es decir, yo hago poetry add -D black, y luego en visual studio code pulso F1, select formatter y no me aparece.. ni aún reiniciando, como que no lo reconoce, me toca hacerlo manual como digo arriba.
Con los linterna igual, flake8, mypy, .. 🤷‍♂️

Y como digo, en Windows hago el poetry Shell y la consola no me pone entre () el entorno activo.. sé que estoy en él, pero no me lo marca 🤷‍♂️

#1294 pues la cosa es que yo puedo seleccionar el entorno desde abajo a la izquierda, y me los reconoce y saca la lista si le pulso, pero no tengo indicación visual de en qué entorno estoy trabajando

1 respuesta
eondev

#1295 es que hablas en tercera persona XD

1 respuesta
B

#1296 lo corregí, es por escribir deslizando dedo en móvil que no leo lo que pongo y doy por hecho que escribe bien 😂

1
desu

#1293 a mi no me funcionan los linters al cambiar entre los entornos se vuelve loco.

1 respuesta
B

#1298 es que no va bien.. no sé si es poetry y con otro sistema como pipenv va o si es cosa de vsc que ha tocado algo y la ha liado... Ni idea.. pero no va bien...

B

Yo no me aclaro con el poetry este...

Por defecto hago pip list y obtengo esto:

spoiler

Todo correcto.

Hago poetry new X, cd X, poetry shell, pip list y me sale esto:

spoiler

¿Por qué coño sale todo eso en poetry? ¿De dónde han salido esos paquetes si es un proyecto nuevo? ¿No debería salir vacío en un entorno nuevo? Joder, es que al final es una milongada esto... No entiendo nada y me he leido la documentación inicial varias veces.

Al final esto no soluciona mi problema de entornos nuevos sin paquetes por defecto.

Menudo engorro python con este tema macho... En Node no pasan estas cosas, npm init es nuevo de cero de verdad, sin marear la perdiz.

Vale, acabo de ver que es porque el proyecto se llamaba como otro antiguo, y por tanto su entorno mantiene de nuevas TODO lo que se usó en su momento.

Si hago un nuevo nombre en plan "asfasfdsfsd", poetry shell y pip list, saca los mismos que tengo por defecto:

spoiler

¿No debería sacar 0? Joder si es un entorno NUEVO, quiero 0!

1 respuesta
HeXaN

#1300 Es que si usas Poetry no haces pip list. Usas el propio archivo de paquetes que crea Poetry para controlar los paquetes instalados.

1 respuesta
B

#1301 Acabo de actualizar el comentario, la cosa es que en pip poetry me instala cosas, y si borro esa carpeta local y entorno local, etc, manitiene el entorno o algo porque el pip se ha mantenido.

De alguna forma poetry usa pip y no borra esos entornos y se llena de mierda el pip

1 respuesta
HeXaN

#1302 Los paquetes que te saca son los fundamentales para poder instalar paquetes en Python. La verdad, no sé qué problemas tienes con que te saque esos xD

This library is the reference implementation of the Python wheel packaging standard, as defined in PEP 427.

It has two different roles:

A setuptools extension for building wheels that provides the bdist_wheel setuptools command
A command line tool for working with wheel files

It should be noted that wheel is not intended to be used as a library, and as such there is no stable, public API.

1 respuesta
aren-pulid0

Si es que te lo dijimos el otro día, que no te líes con abstracciones, hazte un venv con el comando que te pasamos y no te compliques la vida.

1 respuesta
B

#1303 No es eso, no sé si no me he explicado.
Yo tengo mi pip list de lo básico.

Pero creo un poetry new 1, cd 1, poetry shell, y hago un pip list desde ese entorno virtual, y resulta que tiene mil paquetes de cuando tuve un proyecto en poetry llamado igual y hacía poetry add X...
Pues en ese proyecto nuevo llamado 1, tengo todos los paquetes X del anterior proyecto... Como que no reinicia el entorno sino que coge un preexistente por llamarse igual

Y entre poetry show y pip list, luego por ejemplo el visual studio code tiene una buena empanada con tanta mierda diferente.

#1304 al final creo que será lo mejor y más sencillo. Pero eso no quita que pip se está liando por alguna forma en el pc también y me va manteniendo entornos y paquetes en entornos que ya no uso

1 respuesta
HeXaN

#1305 https://github.com/python-poetry/poetry/issues/926

Ahí tienes la respuesta para borrar entornos.

23 días después
Drilan

Algún consejo para compilar una app con tkinter y sqlite?

Estoy probando pyinstaller pero me está dando problemas.

1 respuesta
eondev

#1307 qué problemas te da? Yo lo he usado y 0 problemas.

Drilan

"Failed to execute script xxx" en algunas builds y en otras no me van las funcionalidades.

Tengo que echarle tiempo al manual, quería saber si usáis pyinstaller o hay alguno otro mejor.
(Soy nuevo en python, estoy haciendo pruebecillas)
Gracias por la respuesta

Pizzelio

Alguien es miembro de Real Python? He seguido infinidad de tutoriales de su web para aprender sobre diversos aspectos y ahora he visto que tienen una parte de pago con muchos más cursos y tutoriales pero no sé si merece la pena

1 respuesta
eondev

#1310 ya te lo digo yo, no me rece la pena. xD

1 respuesta
Pizzelio

#1311 jajaja por algo en especial?

1 respuesta
eondev

#1312 más que nada por que al no ser que sean cosas muy concretas de nicho hay material de sobra en internet y de calidad como para pagar cursos de un blog. Pero vamos si te gusta su formato y prefeires ir a tiro fijo... Yo me he sentido muy muy decepcionado con algún que otro curso de pago que he comprado.

1 1 respuesta
B

#1313 Bueno, a veces que haya cosas gratis equivalentes no hace que sea injustificable pagar por algo. Yo hice algunos cursos gratis de finanzas en coursera y solté la gallina para hacer uno de pago porque el profesor, que era el mismo de alguno de los cursos gratuitos, me gustaba, y gracias a eso aprendí cosas que me habría costado la vida en otros sitios.

20 días después
B

Hola, he reestructurado los scripts de un proyecto y ahora tengo problemas.

Digamos que tengo la siguiente estructura

carpeta_principal
  carpeta_1
    hola.py
  carpeta_2
    prueba.py

Desde carpeta_1 estoy intentando llamar a una función que está en el archivo prueba.py de la carpeta_2. Tengo este código:

# carpeta_1.hola.py

from carpeta_2 import prueba as pr

El error que me da es:

ModuleNotFoundError: No module named 'prueba'

1 respuesta
eondev

#1315 tienes que llamar desde carpeta principal con python -m carpeta_1.prueba en caso de llamar directamente a ese script.

2 1 respuesta
B

#1316 gracias!!! me ha funcionado

1
17 días después
eondev

Pregunta tonta:
tengo my_string = 'hola {0}' donde si cuando declaro el string le hago un .format -> my_string = 'hola {0}'.format('pepito') inserto 'pepito' en el texto.
Pero si declaro el string y luego, cuando tenga 'pepito' quiero insertarlo dinámicamente en ese string, hay alguna forma de hacerlo? Se me ocurre con un replace, llevo un rato buscando y no veo nada XD.

1 respuesta
KooPad

#1318 No sé si te entiendo, pero quieres hacer esto?

s = "pepito"

y después

my_string = 'hola {0}'.format(s)
1 respuesta
eondev

#1319 al revés, tengo

my_string = 'hola {0}'

Y cuando tenga el nombre añadirlo al string

my_string.format(name)

Algo así, se me ocurre con replace. He estado mirandolo antes y no he encontraba nada por SO, la cosa es que el nombre no lo sé y querría tener todos las variables con los textos en un mismo sitio.

my_string.replace('{0}', name)
1 respuesta