elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Python (Moderador: Danielㅤ)
| | |-+  hacer que mi .exe hecho con python sepa su propia ubicación
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: hacer que mi .exe hecho con python sepa su propia ubicación  (Leído 3,199 veces)
painpills

Desconectado Desconectado

Mensajes: 41


404


Ver Perfil WWW
hacer que mi .exe hecho con python sepa su propia ubicación
« en: 30 Noviembre 2022, 09:19 am »

Hola, saben si hay alguna forma de que mi programa de python pueda extraer su propia ubicación en disco independientemente de donde se ejecute? para crear una copia de si mismo en otros directorios. Probé con __file__ pero lo que hace es buscar la ruta del .py en el que estoy escribiendo mi código y al momento de volver mi .py en un .exe da un error porque devuelve una ruta erronea, intenté también con os.environ["nombre.exe"] pero no termino de entender como funciona. ayuda :'0


« Última modificación: 30 Noviembre 2022, 16:07 pm por painpills » En línea

Danielㅤ
Moderador
***
Desconectado Desconectado

Mensajes: 1.853


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: hacer que mi .exe hecho con python sepa su propia ubicación
« Respuesta #1 en: 30 Noviembre 2022, 14:16 pm »

Hola, podes usar el método os.getcwd() que te retorna un string con el directorio donde está siéndo ejecutado el script, más info aquí:

https://www.geeksforgeeks.org/get-directory-of-current-python-script/

Nos comentas si te ha funcionado.


Saludos


En línea

painpills

Desconectado Desconectado

Mensajes: 41


404


Ver Perfil WWW
Re: hacer que mi .exe hecho con python sepa su propia ubicación
« Respuesta #2 en: 30 Noviembre 2022, 15:52 pm »

Ya había encontrado otra forma, pero igual probé con os.getcwd() y funcionó con el detalle de que para que el script se copiara así mismo tuve que especificar al final de la ruta el nombre y extensión de mi archivo.

por ejemplo si mi archivo era Programa.py tenía que colocarlo así.

shutil.copyfile("C:\Users\Robin\Desktop\Cliente\Programa.py", "Otro directorio")


El problema está en que si se llegaba al cambiar el nombre del archivo daba un error obvio, lo que era un inconveniente para lo que estaba intentando hacer :-\

Mi solución fue utilizar sys.executable


import sys

shutil.copyfile(sys.executable, "Otro directorio")



sys.executable también devuelve un String con la ruta del archivo en ejecución, pero se encarga de incluir al final de la ruta el nombre y extensión de nuestro programa así que ya podía cambiar el nombre de mi .exe y este podía copiarse sin importar que nombre le pusiera. Creo que solo funciona cuando ya hemos compilado nuestro .py en un .exe, porque de otra forma lo que te retorna es la ruta del interprete de python.


Dejo la info. por si le sirve a alguien más.  ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Alguien que sepa como hacer esto? Por favor :) « 1 2 »
PHP
mokoMonster 10 5,010 Último mensaje 16 Enero 2011, 00:36 am
por cassiani
Algun webmaster o alguien que sepa hacer paginas me ayuda? « 1 2 »
Desarrollo Web
collantes 10 7,497 Último mensaje 26 Abril 2011, 06:46 am
por Feedeex
Busco alguien que sepa programar en c++ para hacer un trabajo
Programación C/C++
menzz 5 4,070 Último mensaje 15 Junio 2013, 23:25 pm
por SrCooper
[Python + QT4] Problema con barra de navegador hecho con python y QT4
Python
darkweb64 3 3,444 Último mensaje 18 Mayo 2015, 17:23 pm
por darkweb64
Compro trabajo, al que sepa hacer lo siguiente
Programación C/C++
CristianEdwars 2 2,421 Último mensaje 1 Junio 2017, 15:41 pm
por simorg
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines