[petsc-dev] petsc_gen_xdmf.py error

Lawrence Mitchell lawrence.mitchell at imperial.ac.uk
Fri Oct 21 09:24:13 CDT 2016


> On 21 Oct 2016, at 15:10, Mark Adams <mfadams at lbl.gov> wrote:
> 
> petsc_gen_xdmf.py works fine on my Mac but I get this error on a Cray. It is looking for "file" but I give it a file name. On my Mac I have pything v2.7.11 and on the Cray I have Python 3.4.3 :: Anaconda 2.2.0 (64-bit).
> 
> Any ideas?
> 
> -rw-r--r-- 1 madams madams    206176 Oct 21 07:03 ex3.h5
> 07:04 nid00039  /global/u2/m/madams/petsc/src/dm/impls/picell/examples/tutorials$ ${PETSC_DIR}/bin/petsc_gen_xdmf.py ex3.h5
> Traceback (most recent call last):
>   File "/global/homes/m/madams/petsc/bin/petsc_gen_xdmf.py", line 241, in <module>
>     generateXdmf(f)
>   File "/global/homes/m/madams/petsc/bin/petsc_gen_xdmf.py", line 235, in generateXdmf
>     Xdmf(xdmfFilename).write(hdfFilename, topoPath, numCells, numCorners, cellDim, geomPath, numVertices, spaceDim, time, vfields, cfields)
>   File "/global/homes/m/madams/petsc/bin/petsc_gen_xdmf.py", line 187, in write
>     with file(self.filename, 'w') as fp:
> NameError: name 'file' is not defined

file is removed in py3k.  You should use "open" in both cases.  On py2 the docstring says:

open(...)
    open(name[, mode[, buffering]]) -> file object
    
    Open a file using the file() type, returns a file object.  This is the
    preferred way to open a file.  See file.__doc__ for further information.


so write:

with open(self.filename, "w") as fp:
   ...


Lawrence


More information about the petsc-dev mailing list