El 13/12/15 a les 12:27, Manuel Bailen ha escrit:
Hola de nuevo y gracias por contestar

Hola,
He repetido varias veces la instalación y he encontrado varios problemas
ademas del anterior, por lo que entiendo que estoy haciendo algo mal,
describo los pasos críticos de la instalación, son los que utilizo con
la 3.4 y he intentado adaptarlos a la 3.8


Los pasos que utilizas son correctos, però todavía no tenemos *todos* los mòdulos adaptados a la versión 3.8, por lo que es normal que te encuentres ese tipo de errores en mòdulos que todavía no han sido migrados (como és el caso del mòdulo file_format que te esta dando error).

Poco a poco iremos migrando todos los modulos, de todos modos si quieres contribuïr, haz un PR i lo revisarmos encatandos.

P.D: Te adjunto un patch que soluciona el error para este mòdulo en questión, pero seguramente te encontraras con más módulos que den problemas.

Un saludo,

mkvirtualenv --system-site-packages  tryton38

hg clone ssh://[email protected]/nantic/tryton-tasks tasks

hg clone ssh://[email protected]/nantic/tryton-config
<http://bitbucket.org/nantic/tryton-config>-b 3.8 config

hg clone ssh://[email protected]/nantic/nan_tryton_utils utils

pip install -r tasks/requirements.txt

pip install -r config/requirements.txt


Hasta aquí funciona todo sin errores

Invoke clone

Aquí salta el primer error al descargar el módulo de ZZ
"party_mercantil" ya que este no tiene versión 3.8, por lo que edito el
fichero .cfg y comento todas las lineas de este módulo y repito la
instalación.

Una vez todo instalado sin errores habro el cliente en el entorno y la
carpeta correspondiente e intento crear una base de datos nueva
obteniendo el error siguiente:

Can't create the database, caused by an unknown reason.
If there is a database created, it could be broken. Maybe drop this
database! Please check the error message for possible informations.
Error message:
cannot import name safe_eval

En el servidor aparece:

8868 140320372061952 [2015-12-13 10:05:20,807] ERROR
trytond.protocols.dispatcher CREATE DB: prue2 failed
Traceback (most recent call last):
   File
"/home/manuel/.tryton/38p9/trytond/trytond/protocols/dispatcher.py",
line 229, in create
     pool.init(update=['res', 'ir'], lang=[lang])
   File "/home/manuel/.tryton/38p9/trytond/trytond/pool.py", line 144,
in init
     self.start()
   File "/home/manuel/.tryton/38p9/trytond/trytond/pool.py", line 97, in
start
     register_classes()
   File "/home/manuel/.tryton/38p9/trytond/trytond/modules/__init__.py",
line 358, in register_classes
     mod_file, pathname, description)
   File
"/home/manuel/.tryton/38p9/trytond/trytond/modules/file_format/__init__.py",
line 4, in <module>
     from .file_format import *
   File
"/home/manuel/.tryton/38p9/trytond/trytond/modules/file_format/file_format.py",
line 12, in <module>
     from trytond.tools import safe_eval
ImportError: cannot import name safe_eval

Luego Intenté "inv fetch" y volvió a aparecer el problema con el patch

Cloning...
1 out of 2 hunks FAILED -- saving rejects to file
trytond/trytond/modules/stock_lot/stock.py.rej
KO: Error applying patch:Patch issue240_631.diff does not apply

Gracias de nuevo


--
Sergi Almacellas Abellana
www.koolpi.com
Twitter: @pokoli_srk
diff -r 1b4aedccf539 file_format.py
--- a/file_format.py	Wed Dec 02 22:25:03 2015 +0100
+++ b/file_format.py	Sun Dec 13 13:35:55 2015 +0100
@@ -4,12 +4,12 @@
 import os.path
 import traceback
 import unicodedata
+from simpleeval import simple_eval
 
 from trytond.model import ModelSQL, ModelView, fields
 from trytond.pool import Pool
 from trytond.pyson import Eval, Greater, Not
 from trytond.rpc import RPC
-from trytond.tools import safe_eval
 
 from jinja2 import Template as Jinja2Template
 
@@ -126,7 +126,7 @@
 
     @property
     def eval_context(self):
-        'Returns the context used for safe_eval'
+        'Returns the context used for simple_eval'
         return {
             'len': len,
             }
@@ -156,8 +156,8 @@
             for field in self.fields:
                 try:
                     if field and field.expression:
-                        field_eval = safe_eval(field.expression.replace('$',
-                                'instance.'), eval_context)
+                        field_eval = simple_eval(field.expression.replace('$',
+                                'instance.'), **eval_context)
                     else:
                         field_eval = ''
                 except:

Responder a