[RISOLTO] errore di codifica dei caratteri

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Bloccato
olaplanche
Messaggi: 178
Registrazione: 26 gennaio 2017 - 11:11

4 dicembre 2017 - 10:14

Buongiorno,

Sto provando a creare un file temporaneo per un nuovo pacchetto utilizzando la funzione import tempfile.
Definisco il contenuto del mio file temporaneo come segue:

Codice: Seleziona tutto

data = ur"""moncontenu"""
Durante l'installazione del pacchetto, ricevo il seguente errore: il codec 'ascii' non riesce a codificare i caratteri
Ne deduco che non gli piacciono certi caratteri nel mio file temporaneo...

Esiste una soluzione?

GRAZIE
Ultima modifica di olaplanche il 11 dicembre 2017 alle 14:52, modificato 1 volta.
- Versione WAPT installata: 2.6.0.16795 Enterprise
- Sistema operativo del server: Linux / Debian Bookworm
- Sistema operativo della macchina per l'amministrazione/creazione dei pacchetti: Windows 10
Avatar utente
sfontenau
Esperto WAPT
Messaggi: 2312
Registrato: 10 luglio 2014 - 23:52
Contatto:

4 dicembre 2017 - 11:09

Ciao

, a meno che non si tratti di informazioni riservate, è possibile avere il codice completo?

Simon
olaplanche
Messaggi: 178
Registrazione: 26 gennaio 2017 - 11:11

4 dicembre 2017 - 11:13

Buongiorno,

Ecco il codice, esclusa la parte relativa alla licenza del software:

Codice: Seleziona tutto

    import tempfile
    pathparamsfile = makepath(tempfile.gettempdir(),'Eureka.ini')
    data = ur"""[OEM]

[Langue]
Ressources=FR
Impression=FR




[Menus]
primo=1
Fichier=00010100011101
Edition=11111111000
Stade=01
Vues=1
Données=10100001
Insertion=111111111111111110001
Analyses=11110000
Affichage=1
Format=1
BOApplication=000000
BOApplicationSphinx=1101
BOInsertion=111101111101111
Interview=1
CS=CS
V51=1

[debug]
licenceur=\\data-svr1\outils$\Logiciels\SphinxV5\programmes\Licence\Licence.exe
ligne= -m=config -s=C:\Program Files (x86)\SphinxV5\sphinx.ini -e=C:\Program Files (x86)\SphinxV5\eureka.ini
[Fichiers]
Fichiers=Fichiers
Répertoires=dictionnaires ; Multimédia/Drapeaux ; Multimédia/Navigation ; Multimédia/Formes ; Multimédia/Fonds ; Multimédia/Images ; Multimédia/Pictos_ecran ; Multimédia/Pictos_papier ; Modelesinternet
Documents=Enquêtes
Multimédia=Multimédia
Mots-outils=dictionnaires\Mots-outils.dic
Styles=Styles.hys
SphinxOnline=http://www.sphinxonline.net
CompteTest=public
MotDePasseTest=Z7L
Comptes=
Abonnement=http://www.sphinxonline.com/abonnementFR.htm
Conseils=1;1;1
QualitéJPEG=100
EditionBasic=1
PropriétésObjets=0
Partage=0
Applet=EurekaApplet.jar
Conditions=http://www.sphinxonline.com/conditionsFR.htm
Fichier1=Enquêtes\Automobiles\Automobiles.hyp
Fichier2=Enquêtes\tourisme\tourisme.hyp
Fichier3=Enquêtes\hopital\hopital.hyp
Fichier4=Enquêtes\loto\loto.hyp
Couleurs=FF8080,602080,C0FFFF,E0E0A0,800060,8080FF,C08000,FFC0C0,800000,FF00FF,00FFFF,FFFF00,800080,000080,808000,FF0000,FFCC00,FFFFCC,CCFFCC,99FFFF,FFCC99,CC99FF,FF99CC,99CCFF,FF6633,CCCC33,00CC99,00CCFF,0099FF,0066FF,996666,969696,663300,669933,003300,003333,003399,663399,993333,333333,000000,FFFFFF,0000FF,00FF00,FF0000,00FFFF,FF00FF,FFFF00,000080,008000,800000,008080,800080,808000,C0C0C0,808080
[Configuration]
NombreDécimalesValeurs=2
NombreDécimalesPourcentages=1
SéparateurDécimales=,
SéparateurMilliers=1
NumérotationTitres=0
NumérotationVariables=1
LongeurVariables=255
LongeurWordBreak=255
LongeurMaximum=1000
PleinEcran=0
SéparateursMots=^t ^p ; " ' - = + , / ( ) { } [ ] < > . ? ¿ ! : ~ & # % ^^ § @ ~ – ` ’ » « …
SéparateursRéponses=^t^p;
ProcesseurCE=ARM
TypeVue=1
TypeFormulaire=3
NumérosModalités=0
PoliceTableur=Arial
TaillePoliceTableur=8
DoubleClicExplorateurVariables=-1
[Seuils]
FF=5
FF1=1
FF2=5
FF3=15
FF01=0.01
FF02=0.1
FF03=0.5
FF04=1
FF05=5
FF06=15
FF07=20
FN=5
FN1=1
FN2=5
FN3=15
FN01=0.01
FN02=0.1
FN03=0.5
FN04=1
FN05=5
FN06=15
FN07=20
NN=0.6
NN1=0.8
NN2=0.6
NN3=0.4
NN01=0.9
NN02=0.8
NN03=0.7
NN04=0.6
NN05=0.5
NN06=0.4
NN07=0.3
[Calculs]
Strict=0
CalculsStrictsEffectifMin=30
CalculsStrictsPourcentageInf5=20
PrincipauxElémentSignificatifs=0
PrincipauxElémentsEffectif=10
PrincipauxElémentsEcart=0
PrincipauxElémentsMax=3
[BarresOutils]
Application=1
Questionnaire=1
Insertion=1
Format=1
Relations=1
Image=0
Etat=1
Explorateur=1
TexteEtat=Base de données
TailleExplorateur=250
[Publication]
Utilisateur=
MotDePasse=
Destination=0
SOL=1;;
Répertoire=
FormScript=
CibleScript=0
Simplifiée=1
AccèsCompte=1
[Proxy]
Proxy=0
Hôte=
Port=21
Utilisateur=
MotDePasse=
[Serveur]
Hôte=DESKTOP-U1529DK
IP=
Port=80
Scripts=Etudes
Pages=Pages
Droits=
SMTP=
Navigation=0
DélaiCache=30
DélaiSauve=3
MaxPages=10
Debug=0
URLComptesASPX=
Sécurisé=0
[Mail]
From=
SMTP=
[Scanner]
Résolution=200
RectoVerso=0
AutoConfiguration=1
ImagesNumérisées=0
IgnorerMalRemplies=0
ArrêtSurErreur=1
SeuilBas=20
SeuilHaut=95
AutoRotation=1
AutoRotationActive=0
AutoCorrection=0
Modèle=0
OCR=1
SauverImages=0
RépertoireImages=
SauverPaquet=0
RépertoirePaquet=
Journal=1
Affichage=1
DernierID=128
[Caere]
SN=IOEULSJJFT
Répertoire=Eureka\Caere
SéparateursNumérique=,.
Trace=0
[Couleurs]
Couleur0=FFFFFF
Couleur1=FFFFFF
Couleur2=FFFFFF
Couleur3=FFFFFF
Couleur4=FFFFFF
Couleur5=FFFFFF
Couleur6=FFFFFF
Couleur7=FFFFFF
Couleur8=FFFFFF
Couleur9=FFFFFF
Couleur10=FFFFFF
Couleur11=FFFFFF
Couleur12=FFFFFF
Couleur13=FFFFFF
Couleur14=FFFFFF
Couleur15=FFFFFF
[MiseAuPoint]
Total100p100=0
MaxVariablesGroupe=255
DécompositionOption1=0
DécompositionOption2=0
PropriétésVersStyle=0
SigneFF=0
ImpressionRelationTestée=1
FormatXML=0
StylesXML=1
Office=1111110
IgnorerRéférences=0
TailleTable=10000
Log1Heure=0
DebugHTTP=0
SéparateurHTTP=<table><tr><td height="1"></td></tr></table>
TimeOutPublication=18000
TableauCaractéristiques=1
XGraph=0
Lissage=0
MultiLangue=1
Thème1=2
Thème2=11
"""
    fichier = open(pathparamsfile, "w")
    fichier.write(data)
    fichier.close()
    filecopyto(pathparamsfile,'c:/SphinxV5')
    remove_file(pathparamsfile)
- Versione WAPT installata: 2.6.0.16795 Enterprise
- Sistema operativo del server: Linux / Debian Bookworm
- Sistema operativo della macchina per l'amministrazione/creazione dei pacchetti: Windows 10
Avatar utente
htouvet
Esperto WAPT
Messaggi: 436
Registrazione: 16 marzo 2015 - 10:48
Contatto:

5 dicembre 2017 - 16:52

Buongiorno,
Poiché il file conterrà caratteri non ASCII, è necessario scegliere una "codifica".

Ci sono buone probabilità che UTF8 funzioni...

Quindi usa il modulo "codecs"

Codice: Seleziona tutto

import tempfile
import codecs

def install():
    pathparamsfile = makepath(tempfile.gettempdir(),'Eureka.ini')
    data = ur"""[OEM]
[Langue]
Ressources=FR
Impression=FR

[Menus]
primo=1
Fichier=00010100011101
Edition=11111111000
Stade=01
...
SéparateurHTTP=<table><tr><td height="1"></td></tr></table>
TimeOutPublication=18000
TableauCaractéristiques=1
XGraph=0
Lissage=0
MultiLangue=1
Thème1=2
Thème2=11
"""
    fichier = codecs.open(pathparamsfile, "wb", encoding='utf8')
    fichier.write(data)
    fichier.close()
    filecopyto(pathparamsfile,'c:/SphinxV5')
    remove_file(pathparamsfile)

Tranquillo IT
olaplanche
Messaggi: 178
Registrazione: 26 gennaio 2017 - 11:11

6 dicembre 2017 - 15:30

Grazie, sembra che il problema sia risolto.
Tuttavia, copiando il file, la cartella di destinazione viene sovrascritta con il file sorgente, senza estensione! Non capisco, ho già usato questo comando senza problemi...

Codice: Seleziona tutto

filecopyto(pathparamsfile,'c:/SphinxV5')
- Versione WAPT installata: 2.6.0.16795 Enterprise
- Sistema operativo del server: Linux / Debian Bookworm
- Sistema operativo della macchina per l'amministrazione/creazione dei pacchetti: Windows 10
Avatar utente
htouvet
Esperto WAPT
Messaggi: 436
Registrazione: 16 marzo 2015 - 10:48
Contatto:

6 dicembre 2017 - 15:45

C'è effettivamente un'indeterminatezza: la destinazione è una directory o un file?.
Giusto per essere sicuri...:

Codice: Seleziona tutto

filecopyto(pathparamsfile,'c:/SphinxV5/Eureka.ini')
Tranquillo IT
olaplanche
Messaggi: 178
Registrazione: 26 gennaio 2017 - 11:11

6 dicembre 2017 - 16:25

Ora ricevo il seguente errore: IOError: [Errno 2] Nessun file o directory di questo tipo: 'c:/SphinxV5/Eureka.ini'

Mi chiedo se lo script stia copiando il file prima che il programma di installazione lo crei?!
- Versione WAPT installata: 2.6.0.16795 Enterprise
- Sistema operativo del server: Linux / Debian Bookworm
- Sistema operativo della macchina per l'amministrazione/creazione dei pacchetti: Windows 10
Avatar utente
htouvet
Esperto WAPT
Messaggi: 436
Registrazione: 16 marzo 2015 - 10:48
Contatto:

6 dicembre 2017 - 16:41

È possibile...
Alcuni programmi di installazione cedono il controllo subito dopo l'avvio, ma continuano a funzionare in background (ad esempio: Adobe CS 6)

In questo caso è necessario monitorare la fine dell'installazione analizzando i processi in corso in un ciclo di attesa.
Nel caso del file ini, puoi provare ad attendere che il file venga creato.

Esempio...

Codice: Seleziona tutto

from setuphelpers import *
import time

def install():
    # lancement de l'installeur..
    run('install_sphinx.exe /silent')

    # attente du fichier pendant au plus 2 minutes
    start_time = time.time()
    while not isfile('c:/SphinxV5/Eureka.ini') and time.time() - start_time < 2*60:
        time.sleep(2)

    if not isfile('c:/SphinxV5/Eureka.ini'):
        error('Fichier configuration non present')

    # fichier de configuration
    pathparamsfile = makepath(tempfile.gettempdir(),'Eureka.ini')
    data = ur"""[OEM]
[Langue]
Ressources=FR
Impression=FR

[Menus]
primo=1
Fichier=00010100011101
Edition=11111111000
Stade=01
...
SéparateurHTTP=<table><tr><td height="1"></td></tr></table>
TimeOutPublication=18000
TableauCaractéristiques=1
XGraph=0
Lissage=0
MultiLangue=1
Thème1=2
Thème2=11
"""
    fichier = codecs.open(pathparamsfile, "wb", encoding='utf8')
    fichier.write(data)
    fichier.close()
    filecopyto(pathparamsfile,'c:/SphinxV5')
    remove_file(pathparamsfile)
Tranquillo IT
olaplanche
Messaggi: 178
Registrazione: 26 gennaio 2017 - 11:11

11 dicembre 2017 - 14:52

Ok, la tua soluzione funziona!

Grazie!
- Versione WAPT installata: 2.6.0.16795 Enterprise
- Sistema operativo del server: Linux / Debian Bookworm
- Sistema operativo della macchina per l'amministrazione/creazione dei pacchetti: Windows 10
Bloccato