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: