[AIDE] python

Vous recherchez un programme, une solution, posez votre question ici.
Répondre
Avatar du membre
Auteur du sujet
Calimero
Grand Habitué
Grand Habitué
Messages : 949
Enregistré le : il y a 12 ans
Localisation : Chti 59

[AIDE] python

Message par Calimero »

Bonjour,
Je crée des supports de cours pour un club informatique. Je fais les mises à jour par fichiers envoyés par mails.
J’ai créé un fichier "exe" en python, pour changer le dossier à mettre à jour, qui fonctionne très bien, mais que sur Windows X64.
Le problème est qu’il y a encore des pc en x86. Est-il possible de créer un "exe" python qui fonctionne pour les deux version de Windows ?
Avatar du membre
LaDidi21
Modérateur
Modérateur
Messages : 13243
Enregistré le : il y a 15 ans

Message par LaDidi21 »

@Calimero :
Si tu veux être compatible 32 et 64, il faut créer un exe 32 bits.
Sinon, il faut un exe en 32 et un autre en 64.

-> Décryptage des liens du forum : extension "ThiWeb Crypt / Decrypt"™ ou Thiweb Live <-

Avatar du membre
Auteur du sujet
Calimero
Grand Habitué
Grand Habitué
Messages : 949
Enregistré le : il y a 12 ans
Localisation : Chti 59

Message par Calimero »

Bonjour,

@LaDidi21 : merci.
Il faut que je trouve un pc avec un Windows 32 bits.
Avatar du membre
Auteur du sujet
Calimero
Grand Habitué
Grand Habitué
Messages : 949
Enregistré le : il y a 12 ans
Localisation : Chti 59

Message par Calimero »

Boniour,
Y a t-il un expert en python sur le forum?
Utilisateur 83 supprimé

Message par Utilisateur 83 supprimé »

Si tu précises un peu ta demande on peut essayer d'aider, personnellement rien compris.

Quel genre de script ?
Avatar du membre
Auteur du sujet
Calimero
Grand Habitué
Grand Habitué
Messages : 949
Enregistré le : il y a 12 ans
Localisation : Chti 59

Message par Calimero »

Bonsoir Mimisik
J’ai créé un script python, et je souhaiterais qu’il s’autodétruise en fin d’exécution. Le problème, c’est que cela ne fonctionne pas car le script est ouvert. Y a t-il une solution ? Cela me donne une erreur winerror 5 (Accês refusé).
Utilisateur 83 supprimé

Message par Utilisateur 83 supprimé »

Code : Tout sélectionner

from os import remove

print("Test")

remove(__file__)
Cette approche semble fonctionner, tu en as d'autres à base de subprocess ou de script bat
Avatar du membre
Auteur du sujet
Calimero
Grand Habitué
Grand Habitué
Messages : 949
Enregistré le : il y a 12 ans
Localisation : Chti 59

Message par Calimero »

@Mimisiku

Mon script se nome : Mise_a_jour.py compilé avec pyinstaller en : Mise_a_jour.exe.
je creé un fichier RAR autoextractible dans lequel il y a un dossier TempMiseAjour contenant un sous dossier "Yeux_rouges" (fichier de mise à jour) et le script python "Mise_a_jour.exe".
Le RAR extrait TempMiseAjour dans un dossier "Gimp" et lance le script python.

Voici le script :

Code : Tout sélectionner

#Effacer le RAR.exe dans Téléchargements
#Inporting os & shutil modules
import os
import shutil
#file name
file="TempMiseAjour.exe"
#Recuperation du chemin userprofile
path=os.path.join(os.environ['USERPROFILE'])
#print (path)
#Selection du chemin userprofile
os.chdir (path)
#Selection du dossier Téléchargement
os.chdir('Downloads')
#Recuperer le chemin du dossier travail en cours
#cwd=os.getcwd ()
#print (cwd)
#Effacement du fichier TempMiseAjour.exe (le RAR.exe)
os.remove (file)
#Effacer le dossier (nom du cours) par ex Yeux_rouges
#Nom du dossier
##dossier="Yeux_rouges"
#Test si dossier existe
if os.path.isdir('C:\\Boldoduc\\Formation\\Gimp\\Les cours\\Yeux rouges'):
    dossier="Yeux rouges"
else:
    dossier="Yeux_rouges"
##print("dossier =", dossier)
#Dossier parent
parent="C:\\Boldoduc\\Formation\\Gimp\\Les cours"
#Selection du dossier  Yeux_rouges
path=os.path.join(parent, dossier)
##print(path)
#Suppression du dossier
#"Yeux_rouge"
#os.rmdir(path)
shutil.rmtree(path)
#Copie du nouveau dossier
#Dossier source
src='C:\\Boldoduc\\Formation\\Gimp\\TempMiseAjour\\Yeux_rouges'
#Dossier destination
dest='C:\\Boldoduc\\Formation\\Gimp\\Les cours\\Yeux_rouges'
##print("src =", src)
##print("dest =" ,dest)
#copie du dossier
shutil.copytree(src, dest)
#Suppression du dossier TempMiseAjour
#Nom du dossier a effacer
dossier="TempMiseAjour"
#Nom du dossier parent
parent="C:\\Boldoduc\\Formation\\Gimp"
#Path complet
path=os.path.join(parent, dossier)
#Suppression du dossier TempMiseAjour
##os.rmdir(path)
shutil.rmtree(path)
*************************************************************************
tout fonctionne jusqu'à #Suppression du dossier TempMiseAjour
après j'ai une erreur : WinError 5
© Unhandled exception in script

Failed to execute script "Mise a jour' due to unhandled
exception: [WinError 51 Accês refuse:
'C:Boldoduc\\Formation\\Gimp\\TempMiseAjour\\Mise_ajour
Traceback (most recent call last)
File "Mise a jour.py", line 65, in <module»
File "shutil.py", line 759, in rmtree
File "shutil.py", line 622, in _rmtree_unsafe
File "shutil.py", line 620, in _rmtree_unsafe
PermissionError: [WinError 5] Accês refuse: 'C:MBoldoduc \Formatir

**********************************************************************************
Je débute en python et ce sript est la conversion d'un batch qui fonctionne très bien (en tant qu'exercice.)
J’espère avoir donné suffisamment d'informations, sinon je suis à disposition .
Avatar du membre
LaDidi21
Modérateur
Modérateur
Messages : 13243
Enregistré le : il y a 15 ans

Message par LaDidi21 »

@Calimero :
Tu n'as pas un problème sur la suppression du programme mais sur la suppression du répertoire le contenant !
Tu veux scier la branche sur laquelle tu es assis :pensive:

"Je suis ton père"...
Ce n'est pas un problème de langage mais de conception :
  1. extraire le nécessaire dans un répertoire TEMPoraire
  2. déclencher la mise à jour à partir de ce dernier
  3. attendre la fin
  4. éventuellement, récupérer et traiter le code d'erreur
  5. supprimer le répertoire TEMPoraire

-> Décryptage des liens du forum : extension "ThiWeb Crypt / Decrypt"™ ou Thiweb Live <-

Avatar du membre
Auteur du sujet
Calimero
Grand Habitué
Grand Habitué
Messages : 949
Enregistré le : il y a 12 ans
Localisation : Chti 59

Message par Calimero »

Bonsoir,
@LaDidi21 :
je suis d'accord avec toi, pourtant mon fichier batch arrive bien à supprimer le dossier TempMiseAjour.

Le fichier batch :

Code : Tout sélectionner

@echo off
CD "%userprofile%"\Downloads
DEL /f /Q "*Yeux rouges.exe*"
REM pause
set bat=%~dpnx0%
echo %bat%
CD C:\Boldoduc\Formation\Gimp\Les cours\Yeux rouges
REM pause
DEL /f /Q "*.*"
REM pause
MOVE "C:\Boldoduc\Formation\Gimp\TempMiseAjour\Yeux rouges\*.*" "C:\Boldoduc\Formation\Gimp\Les cours\Yeux rouges"
REM pause
RD /S /Q C:\Boldoduc\Formation\Gimp\TempMiseAjour
echo del /f %bat%>%TEMP%dele.bat & %TEMP%dele.bat
je n'aie pas encore geré d'erreurs en python, je vais me documenter.
Par contre tu dis de mettre le fichier python dans un dossier temporaire, quelle différence avec TempMiseAjour? c'est pour faire un test?
Avatar du membre
LaDidi21
Modérateur
Modérateur
Messages : 13243
Enregistré le : il y a 15 ans

Message par LaDidi21 »

@Calimero :
Certes mais c'est un batch et non un programme...

Code : Tout sélectionner

CD C:\Boldoduc\Formation\Gimp\Les cours\Yeux rouges
REM pause
DEL /f /Q "*.*"
Si le CD n'aboutit pas, tu supprimes le contenu du répertoire courant...

-> Décryptage des liens du forum : extension "ThiWeb Crypt / Decrypt"™ ou Thiweb Live <-

Avatar du membre
Auteur du sujet
Calimero
Grand Habitué
Grand Habitué
Messages : 949
Enregistré le : il y a 12 ans
Localisation : Chti 59

Message par Calimero »

@LaDidi21 :

Oui je n'aie pas mis de test si le dossier Yeux rouge existe il faut que j’améliore.
Ah j"ai oublier de dire :
Si je copie le fichier python dans un autre dossier et que je le lance depuis ce dossier, le dossier TempMiseAjour et tout son contenu s"efface, et il n’y a pas erreur.
Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Joselito et 14 invités