From: Guenter J. <ne...@gm...> - 2011-06-26 21:16:09
|
Did also notice that PyX 0.11.1 has issues under windows: My setup: Win XP SP3 Miktex 2.8 Python 2.6 PyX 0.11.1 (svn 3173) PyX has not been installed, just has been checked out with svn Copied hello.py to main directory (above pyx) and executed it: (got issue above) I had the same problem the previous poster had: > The subprocess module informs you about the "close_fds" option not > being valid under Windows. You could try to follow its advice and > deactivate this option in the file > > c:\python27\Lib\site-packages\PyX-0.11.1\pyx\text.py", line 910 > > Change it to > close_fds=False Then I ran straight into the next problem: 'cmr10' should be available at 'C:/miktex/fonts/tfm/public/cm/cmr10.tfm ' according to kpsewhich, but the file is not available at this location; update your kpsewhich database Traceback (most recent call last): File "C:\Dokumente und Einstellungen\nep\Eigene Dateien\eclipseworkspace\pyxsvn\src\hello.py", line 12, in <module> c.writeEPSfile() [... snip ...] File "C:\Dokumente und Einstellungen\nep\Eigene Dateien\eclipseworkspace\pyxsvn\src\pyx\dvi\texfont.py", line 37, in __init__ file = filelocator.open(self.name, [filelocator.format.tfm], "rb") File "C:\Dokumente und Einstellungen\nep\Eigene Dateien\eclipseworkspace\pyxsvn\src\pyx\filelocator.py", line 274, in open raise IOError("Could not locate the file '%s'." % filename) IOError: Could not locate the file 'cmr10'. pyx.filelocator does seem not to like what kpsewhich is returning. After tinkering around a while I found in filelocator.py/line 204 full_filename = full_filenames.split("\n")[0] This reminded me that kpsewhich is returning answers with a newline on the command prompt. Changing the above to windows newline full_filename = full_filenames.split("\r\n")[0] made hello.py producing proper PDF and DVI. I also tried full_filename = full_filenames.strip() which also worked. This should fix it on both platforms. Is it safe to assume that kpsewhich only returns "one" entry (not several entrys separated by newlines)? Then I ran out of luck trying another font: Inserting text.set(mode="latex") text.preamble(r"\usepackage{times}") c.text(0, 0, r"\LaTeX{} doesn't need to look like \LaTeX{} all the time.") yielded (the first lines show which files PyX asked for using kpsewhich) kpsewhich --format="vf" "ptmr7t" C:/miktex/fonts/vf/adobe/times/ptmr7t.vf kpsewhich --format="tfm" "ptmr7t" C:/miktex/fonts/tfm/adobe/times/ptmr7t.tfm kpsewhich --format="tfm" "ptmr8r" C:/miktex/fonts/tfm/adobe/times/ptmr8r.tfm Traceback (most recent call last): File "C:\Dokumente und Einstellungen\nep\Eigene Dateien\eclipseworkspace\pyxsvn\src\font.py", line 10, in <module> c.writeEPSfile("font") File "C:\Dokumente und Einstellungen\nep\Eigene Dateien\eclipseworkspace\pyxsvn\src\pyx\canvas.py", line 289, in wrappedindocument return method(d, file) [Snip ...] File "C:\Dokumente und Einstellungen\nep\Eigene Dateien\eclipseworkspace\pyxsvn\src\pyx\dvi\dvifile.py", line 227, in definefont afont = texfont.virtualfont(fontname, fontfile, c, q/self.tfmconv, d/self.tfmconv, self.tfmconv, self.pyxconv, self.debug>1) File "C:\Dokumente und Einstellungen\nep\Eigene Dateien\eclipseworkspace\pyxsvn\src\pyx\dvi\texfont.py", line 143, in __init__ self.vffile = vffile.vffile(file, 1.0*q/d, tfmconv, pyxconv, debug > 1) File "C:\Dokumente und Einstellungen\nep\Eigene Dateien\eclipseworkspace\pyxsvn\src\pyx\dvi\vffile.py", line 57, in __init__ cmd = afile.readuchar() File "C:\Dokumente und Einstellungen\nep\Eigene Dateien\eclipseworkspace\pyxsvn\src\pyx\reader.py", line 80, in readuchar return struct.unpack("B", self.file.read(1))[0] struct.error: unpack requires a string argument of length 1 Something seems to go wrong when vffile/reader is trying to read *.tfm-files: For some reason reader.py tries to read characters, but there is nothing more to read (when the self.file.read(1)[0] on line 80 returns nothing, then the error comes). Because I have absolutely no idea what vffile/reader is doing, I have to ask the experts advice. With regards, Guenter -- NEU: FreePhone - kostenlos mobil telefonieren! Jetzt informieren: http://www.gmx.net/de/go/freephone |