[RESUELTO] Error de codificación de caracteres

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
olaplancha
Mensajes: 178
Inscripción: 26 de enero de 2017 - 11:11

4 de diciembre de 2017 - 10:14 a. m

Buen día,

Estoy intentando crear un archivo temporal para un nuevo paquete usando la función de importación de archivo temporal.
Defino el contenido de mi archivo temporal de la siguiente manera:

Código: Seleccionar todo

data = ur"""moncontenu"""
Durante la instalación del paquete, aparece el siguiente error: el códec 'ascii' no puede codificar caracteres
Deduzco que no le gustan ciertos caracteres en mi archivo temporal...

¿Hay alguna solución?

GRACIAS
Última edición realizada por olaplanche el 11 de diciembre de 2017 a las 14:52, editado 1 vez.
- Versión de WAPT instalada: 2.6.0.16795 Enterprise
- Sistema operativo del servidor: Linux / Debian Bookworm
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

4 de diciembre de 2017 - 11:09 AM

Hola

, a menos que sea información confidencial, ¿es posible obtener el código completo?

Simon
olaplancha
Mensajes: 178
Inscripción: 26 de enero de 2017 - 11:11

4 de diciembre de 2017 - 11:13

Buen día,

Aquí está el código menos la parte relativa a la licencia del software:

Código: Seleccionar todo

    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)
- Versión de WAPT instalada: 2.6.0.16795 Enterprise
- Sistema operativo del servidor: Linux / Debian Bookworm
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10
Avatar de usuario
htouvet
Experto en WAPT
Mensajes: 436
Inscripción: 16 de marzo de 2015 - 10:48
Contacto :

5 de diciembre de 2017 - 16:52

Buen día,
Dado que el archivo contendrá caracteres no ASCII, se debe elegir una "codificación".

Hay una buena posibilidad de que UTF8 funcione...

Así que use el módulo "códecs"

Código: Seleccionar todo

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)

TI tranquila
olaplancha
Mensajes: 178
Inscripción: 26 de enero de 2017 - 11:11

6 de diciembre de 2017 - 15:30

Gracias, eso parece resolver el problema.
Sin embargo, al copiar el archivo, se sobrescribe la carpeta de destino con el archivo de origen, ¡sin la extensión! No lo entiendo, ya he usado este comando sin problemas.

Código: Seleccionar todo

filecopyto(pathparamsfile,'c:/SphinxV5')
- Versión de WAPT instalada: 2.6.0.16795 Enterprise
- Sistema operativo del servidor: Linux / Debian Bookworm
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10
Avatar de usuario
htouvet
Experto en WAPT
Mensajes: 436
Inscripción: 16 de marzo de 2015 - 10:48
Contacto :

6 de diciembre de 2017 - 15:45

De hecho existe una indeterminación: el destino es un directorio o un archivo.
Sólo para estar seguro...:

Código: Seleccionar todo

filecopyto(pathparamsfile,'c:/SphinxV5/Eureka.ini')
TI tranquila
olaplancha
Mensajes: 178
Inscripción: 26 de enero de 2017 - 11:11

6 de diciembre de 2017 - 16:25

Ahora me aparece el siguiente error: IOError: [Errno 2] No existe tal archivo o directorio: 'c:/SphinxV5/Eureka.ini'.

Me pregunto si el script está copiando el archivo antes de que el instalador lo cree.
- Versión de WAPT instalada: 2.6.0.16795 Enterprise
- Sistema operativo del servidor: Linux / Debian Bookworm
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10
Avatar de usuario
htouvet
Experto en WAPT
Mensajes: 436
Inscripción: 16 de marzo de 2015 - 10:48
Contacto :

6 de diciembre de 2017 - 16:41

Es posible...
Algunos instaladores entregan el control inmediatamente después del lanzamiento, pero continúan ejecutándose en segundo plano (ejemplo: Adobe CS 6)

En este caso es necesario monitorizar el final de la instalación analizando los procesos en curso en un bucle de espera.
En el caso del archivo ini, puedes intentar esperar a que se cree el archivo.

Ejemplo...

Código: Seleccionar todo

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)
TI tranquila
olaplancha
Mensajes: 178
Inscripción: 26 de enero de 2017 - 11:11

11 de diciembre de 2017 - 14:52

¡De acuerdo, tu solución funciona!

¡Gracias!
- Versión de WAPT instalada: 2.6.0.16795 Enterprise
- Sistema operativo del servidor: Linux / Debian Bookworm
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10
Bloqueado