Estoy usando cPickle a guardar mi Base de datos en el archivo. El código se parece a:

def Save_DataBase():
import cPickle
from scipy import *
from numpy import *
a=Results.VersionName
#filename='D:/results/'+a[a.find('/')+1:-a.find('/')-2]+Results.AssType[:3]+str(random.randint(0,100))+Results.Distribution+".lft"
filename='D:/results/pppp.lft'
plik=open(filename,'w')
DataOutput=[[[DataBase.Arrays.Nodes,DataBase.Arrays.Links,DataBase.Arrays.Turns,DataBase.Arrays.Connectors,DataBase.Arrays.Zones],
[DataBase.Nodes.Data,DataBase.Links.Data,DataBase.Turns.Data,DataBase.OrigConnectors.Data,DataBase.DestConnectors.Data,DataBase.Zones.Data],
[DataBase.Nodes.DictionaryPy2Vis,DataBase.Links.DictionaryPy2Vis,DataBase.Turns.DictionaryPy2Vis,DataBase.OrigConnectors.DictionaryPy2Vis,DataBase.DestConnectors.DictionaryPy2Vis,DataBase.Zones.DictionaryPy2Vis],
[DataBase.Nodes.DictionaryVis2Py,DataBase.Links.DictionaryVis2Py,DataBase.Turns.DictionaryVis2Py,DataBase.OrigConnectors.DictionaryVis2Py,DataBase.DestConnectors.DictionaryVis2Py,DataBase.Zones.DictionaryVis2Py],
[DataBase.Paths.List]],[Results.VersionName,Results.noZones,Results.noNodes,Results.noLinks,Results.noTurns,Results.noTrips,
Results.Times.VersionLoad,Results.Times.GetData,Results.Times.GetCoords,Results.Times.CrossTheTime,Results.Times.Plot_Cylinder,
Results.AssType,Results.AssParam,Results.tStart,Results.tEnd,Results.Distribution,Results.tVector]]
cPickle.dump(DataOutput, plik, protocol=0)
plik.close()`

Y funciona bien. La mayor parte de mi Base de datos de las filas son listas de listas, vecor, o matriz-como conjuntos de datos.

Pero ahora, cuando me de los datos de entrada, se produce un error:

def Load_DataBase():
import cPickle 
from scipy import *
from numpy import *  
filename='D:/results/pppp.lft'
plik= open(filename, 'rb')
""" first cPickle load approach """
A= cPickle.load(plik)
""" fail """
""" Another approach - data format exact as in Output step above , also fails"""
[[[DataBase.Arrays.Nodes,DataBase.Arrays.Links,DataBase.Arrays.Turns,DataBase.Arrays.Connectors,DataBase.Arrays.Zones],
[DataBase.Nodes.Data,DataBase.Links.Data,DataBase.Turns.Data,DataBase.OrigConnectors.Data,DataBase.DestConnectors.Data,DataBase.Zones.Data],
[DataBase.Nodes.DictionaryPy2Vis,DataBase.Links.DictionaryPy2Vis,DataBase.Turns.DictionaryPy2Vis,DataBase.OrigConnectors.DictionaryPy2Vis,DataBase.DestConnectors.DictionaryPy2Vis,DataBase.Zones.DictionaryPy2Vis],
[DataBase.Nodes.DictionaryVis2Py,DataBase.Links.DictionaryVis2Py,DataBase.Turns.DictionaryVis2Py,DataBase.OrigConnectors.DictionaryVis2Py,DataBase.DestConnectors.DictionaryVis2Py,DataBase.Zones.DictionaryVis2Py],
[DataBase.Paths.List]],[Results.VersionName,Results.noZones,Results.noNodes,Results.noLinks,Results.noTurns,Results.noTrips,
Results.Times.VersionLoad,Results.Times.GetData,Results.Times.GetCoords,Results.Times.CrossTheTime,Results.Times.Plot_Cylinder,
Results.AssType,Results.AssParam,Results.tStart,Results.tEnd,Results.Distribution,Results.tVector]]= cPickle.load(plik)`

Error es (en ambos casos):

    Traceback (most recent call last):
File "D:\programy\projekt_eclipse\src\Praca\wx_frame.py", line 342, in LoadDatabase_Handler
Load_DataBase()
File "D:\programy\projekt_eclipse\src\Praca\wx_frame.py", line 1804, in Load_DataBase
A= cPickle.load(plik)
ImportError: No module named multiarray

Alguna Idea?

PS. Ahora he resuelto el problema, dicen parcialmente :/que necesitaba para cambiar el formato de las matrices. He tratado de trazar el error, pero no podía. La variable que causan el error es este (largo 🙂 ) :

[[  0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00]
[  1.00000000e+00   0.00000000e+00   0.00000000e+00   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   0.00000000e+00]
[  2.00000000e+00   0.00000000e+00   1.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   3.52875186e+04]
[  3.00000000e+00   0.00000000e+00   2.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.24880978e+04]
[  4.00000000e+00   0.00000000e+00   3.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.24880978e+04]
[  5.00000000e+00   0.00000000e+00   4.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.24880978e+04]
[  6.00000000e+00   0.00000000e+00   5.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.24880978e+04]
[  7.00000000e+00   0.00000000e+00   6.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.24880978e+04]
[  8.00000000e+00   0.00000000e+00   7.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   3.59846476e+04]
[  9.00000000e+00   0.00000000e+00   8.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   0.00000000e+00]
[  1.00000000e+01   1.00000000e+03   0.00000000e+00   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   3.97583022e+04]
[  1.10000000e+01   1.00000000e+03   1.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.84929461e+04]
[  1.20000000e+01   1.00000000e+03   2.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   8.76891311e+03]
[  1.30000000e+01   1.00000000e+03   3.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   5.10636164e+03]
[  1.40000000e+01   1.00000000e+03   4.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.45841100e+03]
[  1.50000000e+01   1.00000000e+03   5.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   4.22093915e+03]
[  1.60000000e+01   1.00000000e+03   6.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   9.20282091e+03]
[  1.70000000e+01   1.00000000e+03   7.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.86566159e+04]
[  1.80000000e+01   1.00000000e+03   8.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   3.80902598e+04]
[  1.90000000e+01   2.00000000e+03   0.00000000e+00   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.23193676e+04]
[  2.00000000e+01   2.00000000e+03   1.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.16000116e+04]
[  2.10000000e+01   2.00000000e+03   2.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   9.05680012e+03]
[  2.20000000e+01   2.00000000e+03   3.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   6.89123867e+03]
[  2.30000000e+01   2.00000000e+03   4.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   4.98898168e+03]
[  2.40000000e+01   2.00000000e+03   5.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   7.44216130e+03]
[  2.50000000e+01   2.00000000e+03   6.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.23593332e+04]
[  2.60000000e+01   2.00000000e+03   7.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.14424233e+04]
[  2.70000000e+01   2.00000000e+03   8.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.91864355e+04]
[  2.80000000e+01   3.00000000e+03   0.00000000e+00   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.07766798e+04]
[  2.90000000e+01   3.00000000e+03   1.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   8.61849685e+03]
[  3.00000000e+01   3.00000000e+03   2.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.09785208e+04]
[  3.10000000e+01   3.00000000e+03   3.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   8.99736773e+03]
[  3.20000000e+01   3.00000000e+03   4.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   9.06209122e+03]
[  3.30000000e+01   3.00000000e+03   5.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   9.48702707e+03]
[  3.40000000e+01   3.00000000e+03   6.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.04653099e+04]
[  3.50000000e+01   3.00000000e+03   7.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   6.25314801e+03]
[  3.60000000e+01   3.00000000e+03   8.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.67608539e+04]
[  3.70000000e+01   4.00000000e+03   0.00000000e+00   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.07766798e+04]
[  3.80000000e+01   4.00000000e+03   1.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   6.82241178e+03]
[  3.90000000e+01   4.00000000e+03   2.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   8.05149043e+03]
[  4.00000000e+01   4.00000000e+03   3.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   9.55692239e+03]
[  4.10000000e+01   4.00000000e+03   4.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.19199226e+04]
[  4.20000000e+01   4.00000000e+03   5.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   8.43876335e+03]
[  4.30000000e+01   4.00000000e+03   6.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   4.90454231e+03]
[  4.40000000e+01   4.00000000e+03   7.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   6.03525083e+03]
[  4.50000000e+01   4.00000000e+03   8.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.67608539e+04]
[  4.60000000e+01   5.00000000e+03   0.00000000e+00   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.07766798e+04]
[  4.70000000e+01   5.00000000e+03   1.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   6.07842319e+03]
[  4.80000000e+01   5.00000000e+03   2.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   6.48191278e+03]
[  4.90000000e+01   5.00000000e+03   3.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.06547361e+04]
[  5.00000000e+01   5.00000000e+03   4.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.27500595e+04]
[  5.10000000e+01   5.00000000e+03   5.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   9.62319628e+03]
[  5.20000000e+01   5.00000000e+03   6.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   6.50364667e+03]
[  5.30000000e+01   5.00000000e+03   7.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   6.48651846e+03]
[  5.40000000e+01   5.00000000e+03   8.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.67608539e+04]
[  5.50000000e+01   6.00000000e+03   0.00000000e+00   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.16862400e+04]
[  5.60000000e+01   6.00000000e+03   1.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   9.88311307e+03]
[  5.70000000e+01   6.00000000e+03   2.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   7.89923519e+03]
[  5.80000000e+01   6.00000000e+03   3.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   8.16959736e+03]
[  5.90000000e+01   6.00000000e+03   4.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   6.49942081e+03]
[  6.00000000e+01   6.00000000e+03   5.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   6.24620368e+03]
[  6.10000000e+01   6.00000000e+03   6.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   9.27811830e+03]
[  6.20000000e+01   6.00000000e+03   7.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.13336356e+04]
[  6.30000000e+01   6.00000000e+03   8.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.91853045e+04]
[  6.40000000e+01   7.00000000e+03   0.00000000e+00   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   3.67326624e+04]
[  6.50000000e+01   7.00000000e+03   1.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.79192625e+04]
[  6.60000000e+01   7.00000000e+03   2.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   9.35835049e+03]
[  6.70000000e+01   7.00000000e+03   3.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   4.66349011e+03]
[  6.80000000e+01   7.00000000e+03   4.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.88664273e+03]
[  6.90000000e+01   7.00000000e+03   5.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   4.15546726e+03]
[  7.00000000e+01   7.00000000e+03   6.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   9.26420582e+03]
[  7.10000000e+01   7.00000000e+03   7.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   1.80179725e+04]
[  7.20000000e+01   7.00000000e+03   8.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   3.69846102e+04]
[  7.30000000e+01   8.00000000e+03   0.00000000e+00   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   0.00000000e+00]
[  7.40000000e+01   8.00000000e+03   1.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   3.66207833e+04]
[  7.50000000e+01   8.00000000e+03   2.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.32529854e+04]
[  7.60000000e+01   8.00000000e+03   3.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.32529854e+04]
[  7.70000000e+01   8.00000000e+03   4.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.32529854e+04]
[  7.80000000e+01   8.00000000e+03   5.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.32529854e+04]
[  7.90000000e+01   8.00000000e+03   6.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   2.32529854e+04]
[  8.00000000e+01   8.00000000e+03   7.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   3.70098656e+04]
[  8.10000000e+01   8.00000000e+03   8.00000000e+03   2.00000000e+01
0.00000000e+00   5.00000000e+02   2.00000000e+01   0.00000000e+00]]

cPickle, o de la salmuera se puede cargar. Pero cuando yo lo hago de forma manual con la consola, la misma estructura de archivos ( [[ ]] y todos los formatos exaclty la misma, los valores de e+00 formato) Entonces funciona bien ??????????? ¿Qué es el infierno?
De todos modos he resuelto el problema por changign formato de datos :/

Estoy segura de que usted está usando git?

OriginalEl autor Rafal | 2010-06-09

5 Comentarios

  1. 9

    Tuve el mismo problema en un equipo con Windows XP con el Código que funcionó bien en Linux. Puede tener que ver con el diferente manejo de texto y archivos binarios. Al escribir sus datos de intentar crear el archivo de objeto que se afirma explícitamente que desea modo binario, es decir,

    plik=open(filename,'wb')

    lugar de

    plik=open(filename,'w')

    Que trabajó para mí.

    OriginalEl autor Kurt

  2. 2

    En primer lugar, verificar si $YOUR_PYTHON_INSTALLATION/lib/python-x.x/sitio-paquetes/numpy/core/multiarray.así que el archivo existe.

    Y sería muy útil si usted ha publicado completa de trazas, no sólo el mensaje de error.

    Yo he comprobado, funciona bien, y el archivo existe, de numpy.núcleo de importación multiarray como multiarray también he reinstalado numpy no ayuda. Yo post completo sobre la procedencia del producto en cuestión

    OriginalEl autor zifot

  3. 1

    ¿Has probado a importar multiarray explícitamente? pickle las necesidades de todas las clases que se definen en el fin de importar los datos.

    Usted quiere decir: de numpy.núcleo de importación multiarray como multiarray nada de eso – no ayuda.

    OriginalEl autor Ryan Ginstrom

  4. 1

    Esto puede ser causado por git cambiar los finales de línea en una máquina Windows con autocrlf. Te aviso que no va a ser un problema hasta que cambie ramas o hacer cualquier otra cosa que se elimina y se vuelve a escribir el archivo en el disco.
    Añadir esta línea a su .gitattributes archivo para evitar que la reescritura de los finales de línea en el texto (pero en realidad binario!) pickle archivos:

    # .gitattributes
    # Pickle files are to be treated as binary. 
    *.p binary
    *.lft binary

    OriginalEl autor kb0

  5. 0

    Debe ser el uso de una muy vieja de Python. Porque de importación *’ sólo está disponible en el nivel de módulo. De todos modos, para responder a su pregunta:

    Mover estas declaraciones

    import cPickle 
    from scipy import *
    from numpy import *

    de la Load_DataBase definición y vas a estar bien. La excepción se produce porque cPickle no puede encontrar la información de metadatos del contenido de plik.

    OriginalEl autor luanjunyi

Dejar respuesta

Please enter your comment!
Please enter your name here