[Python] Hilo general

n40k1

#746 Ju, pues a mi Spyder me gusta :(

bLaKnI

PyCharm (y yo hace nada tiraba con Notepad++, pero un purista de la vida, casi me exigió que saliera de este...) + PIP. Ni VENV siquiera. El que te "fuerza" PyCharm como maxime y para facilitarle la vida a los demás. Si vas solo, en tu PC a pelo. PIP + PyCharm. Y siempre recomendable un Github o GitLab, en private, para tus cositas. Cumples 2 funciones básicas: backup + versioning.
Hay mucha gente que adora el Jupyter. A mi me pica un poco el culo con él...

3 respuestas
HeXaN

Jamás de los jamases, uséis pip a pelo. Repito: jamás.

Es la peor práctica que existe y los problemas que puede acarrear son graves (reinstalar Python al completo, por ejemplo).

2 1 respuesta
bLaKnI

#753 Sí, ¿y? Para casa, ningún problema.

Reinstalas, ejecutas, se queja, montas módulos y a correr de nuevo.
Incluso para equipos pequeños. Que te lleva, ¿máximo 15 minutos? Descargas EXE, instalas Python ultima versión, reinstalas módulos y a correr otra vez.

2 respuestas
Che931

#754 Un venv con todas las dependencias está listo en un par de minutos la gran mayoría de veces. Si haciendo alguna trastada con alguna dependencia lo dejas frito, generas uno nuevo que no afecta ni a tu instalación ni al resto de proyectos. Además que Pycharm trae un asistente de venv que es crema, te lo genera todo solito.

1 respuesta
eondev

#754 crear un virtualenv e instalar paquetes para ese proyecto me lleva 30 segundos :psyduck:
Y tengo todos los proyectos que quiera a la vez wtf xDDD

1 respuesta
bLaKnI

#755 #756 Que si, que si. Calmaos. Que si coñe.

Unrack

#752 jupyter está muy extendido para prototipar proyectos de data science. A mí me encanta lo uso siempre en las primeras etapas de cualquier desarrollo.

1 respuesta
bLaKnI

#758 Yo precisamente los data scientist con los que curro, lo usan a saco, y luego cuando les pides que te den un script, un py un whatever, jamás pueden. Siempre te acaban mandando un correo con cachos de código sueltos. Puro prototipado.
Luego copian&pegan los cachos de codigo en un .py y este es el script...

2 respuestas
HeXaN

#759 Porque serán unos inútiles. Cualquier notebook válido de Jupyter se puede exportar a un .py automáticamente.

1 1 respuesta
Unrack

#759 #760 muchos de esos .py dejan de funcionar por malas prácticas que te permite el Notebook. Variables que dejan de existir en código es algo muy común que he visto haha.
Luego muchos no saben paquetizar en scripts los procesos pero eso es algo más propio del poco conocimiento que traen estos perfiles.

jaime9714

Para mí trabajo de fin de curso estoy trabajando con Python. ¿Sabéis alguna forma de presentar el código de forma bonita, y como extraer arrays de manera presentable? Muchas gracias!

3 respuestas
HeXaN

#762 Cualquier IDE de Python tiene ya PEP8 integrado y te lo pone bonito. Y para imprimir por pantalla las estructuras de datos de forma "bonita" puedes usar prettyprint.

2 respuestas
Unrack

#762 #763 Aprovechando que se ha hablado de jupyter le puedes echar un vistazo igual es lo que buscas.

bLaKnI

Hablando de venvs, por lo general, para cada path de proyecto, yo tengo un folder venv dentro que usado como interpreter en PyCharm, hago que NO sirva para todos los demás proyectos y hago que NO tire de global packages (para no usar el --local en pip). Lo véis OK? O compartíis?
Personalmente prefiero que cada proyecto tenga su VENV independiente.

En mi caso, trabajo en un server remoto, que pasa por proxy y está capadisimo a nivel de permisos de usuario. Y me las veo y traigo para jugar con permisos de administrador + --trust-host en pip, de los cojones...
Amén de configurar el proxy HTTP en PyCharm, etc... Un engorro!
Encima desde Python 3.X, el upgrade de PIP en si mismo como modulo, peta en Windows! Aunque luego instala bien... Algo jodido todo en si mismo.

Cierto es que con virtualenv, y un requests.txt, las cosas son faciles:

  • Nueva carpeta proyecto en PyCharm mismo.
  • Pull del codigo.
  • Nuevo inteprete que te genera dentro del folder el VENV automatico.
  • Abres terminal y tiras el pip con -r requests.txt y a correr.

#762 codigo bonito? Que significa? En si mismo python es bonito por cojones, porque funciona por indentation y no por claves.
Así que por huevos es bonito.
Otra cosa es que no haya que pasar en carácteres de la "línea Dios", lo cual es una puta mierda... Entonces ahí el propio prettyfier de PyCharm, te corta las líneas, y te pega los espacios y saltos de línea que haga falta. Pero a mi personalmente, no me gusta. Hay gente que lo tiene configurado de base en el CTRL+S.
Finalmente, con un linter cualquiera (PyLint, flake8, Sonarlint...), te aseguras que el codigo "cumple" con lo que se espera de los programadores con TOC severo (el sumum a lo que hemos llegado...).
A falta de linter, tiras (o combinas) del propio Code Inspector de PyCharm, que justo tira de una versión descafeinada del PEP8 que te comenta Hexan #763.

Y para las esructuras de datos, si te refieres a imprimirlas como resultado por terminal, pues hay mil cosas. Por ejemplo: tabulate. O con panda, tiras de sus DataFrames, o mil otros. Inclusive con los formaters nativos de versiones de Python avanzadas, etc...

1 respuesta
Fyn4r

Todo ese tocho para decir que sí que usas venv pero no lo sabes

1 respuesta
bLaKnI

#766 ¿Como no voy a saberlo? :astonished:

1 respuesta
eondev

#767 -> #752 xD

1 respuesta
bLaKnI

#768 Pero coño, esto lo he comentado y de nuevo insisto en ello: para casa. Para algo casero en el que estás tu solo.
Incluso, para un equipo pequeño con un proyecto muy consensuado y cerrado. Si no puede instalar los paquetes cualquiera y quien lo hace conoce la lógica "del todo", no hay problema alguno. Ya es querer discutir por que sí.

1 respuesta
Lolerpopler

#769 Ni para casa, lo primero que aprendi, usar virtualenv y un requirements.txt (o poetry o lo que os salga de ahi) . Me ahorre todos los quebraderos de cabeza que me pude encontrar cuando estaba en la uni. Da igual que cambies de pc, que vuelvas a trabajar con un proyecto que habias dejado parado hace años. Es que no hay ninguna razon para para no usar venv...

1 respuesta
Kaiserlau
#770Lolerpopler:

lo primero que aprendi, usar virtualenv y un requirements.txt

Es que es el step one de todo curso tutorial que se precie mínimamente xd Si no recuerdo mal en la docu oficial de python es de lo primero que pone.

Markitos_182

Te voy a decir el único caso en el que no uso venv: En una raspberry pi que tengo en el coche metida en la guantera conectada al CAN parseando paquetes.

jaime9714

#765 Cuando hablaba de ponerlo bonito, era con referencia a llevarlo a un procesadord de texto como latex. No se si hay alguna forma para mantener el aspecto de Pycharm(que es lo que uso actualmente). En referencia a arrays ( matrices en el caso que me ocupa), lo decía con el mismo menester, el de aplicarlo a texto.

2 respuestas
HeXaN

#773 Puedes modificar los code listings de LaTeX para que tengan los colores que quieras. Pero vamos, demasiado curro. Yo en el paper que tengo publicado los tengo en negro (es lo normal) y listo.

2 respuestas
bLaKnI

#773 #774 Estoy flipando con lo que comentáis. Acabo de echarle un vistazo, y me parece bien curioso...

https://www.overleaf.com/learn/latex/code_listing

¿Y esto por que?
Quiero decir, ¿porque no redactar en Word, y luego en este hacer un bloque en Courier New clásico para código, o con la nueva fuente "JetBrains Mono"? ¿Los papers los tenéis que hacer o los hacéis por voluntad en LaTex?

https://www.jetbrains.com/lp/mono/?_ga=2.61376492.1301265848.1586901470-323400982.1586901470

Que te queda precioso:

Fuente: https://www.jetbrains.com/lp/mono/?_ga=2.61376492.1301265848.1586901470-323400982.1586901470
Embeder codigo en word "bien": https://stackoverflow.com/a/2653406 (el resto de posts son igual de magníficos).

1 1 respuesta
telemaco103

#775 Latex se usa mucho en el ámbito científico por la facilidad de escribir fórmulas matemáticas, símbolos y demás cosas que en Word te puedes volver loco. También tiene facilidades para trabajar en grupo que son útiles para papers.

1
jaime9714

#774 ¿ Osea, copiar y pegar y adiós?

1 respuesta
HeXaN

#777 Básicamente, sí xD

telemaco103

Os comento un poquillo una duda que tengo.

Estoy realizando un programa, que a partir de unas determinadas variables pinta una superficie en 3D (usando matplotlib). Lo siguiente para completar este programa ha sido hacer una GUI muy básica con la que introducir estas variables. La cosa es que lo siguiente que quiero es poder exportarlo y que funciones sin necesidad de spyder (sé que habéis dicho que no es recomendable, pero es lo que dijeron que usara). Es decir, abrir, meter datos y que imprima la gráfica. La duda es, sólo es necesario generar el .exe y ya funcionaría?

1 respuesta
HeXaN
#779telemaco103:

La duda es, sólo es necesario generar el .exe y ya funcionaría?

La teoría es esa pero claro, luego los empaquetadores no son perfectos.

1 respuesta