Has anyone got the FDK working in Mac OS X 10.3 (Panther)? It looks like FinishInstall.py only works with tcsh, and not bash (which is what Panther uses by default).
I have run FinishInstall.py with ~/ as my working directory, but all attempts at running MakeOTF.py have failed. (I am trying to generate the example font AdobeGaramondPro.) I get errors involving tracebacks and no tkinter support, which I would have thought of as given.
If you *are* running the FDK in Panther, I'd like to hear of it so that I know my efforts were the result of ignorance rather than impossible circumstance.
Yes, I have installed FDK 1.6 on Panther. I did have a minor problem with the shell scripts, but that was due to the fact that the path to my tools directory had spaces in it; if your ~/ path is similar to /Users/yourname, this would not be the reason for the FinishInstall.py problem, I'd guess.
If you send me (email@example.com) a transcript of your Terminal output, I might be able to suggest something more specific.
Thanks for your help. If I post here, then others can see too.
Before we get started, can I clarify that you are using bash as your shell? If not, we may have some difficulties. "echo $SHELL" should tell you most conveniently (mine says /bin/bash).
So, I've run FinishInstall.py and it works. A file turns up in my home directory which contains:
setenv FDK_PROGRAM_ROOT /Users/will/Typesetting/Font/AdobeFDK/FDK1.6-OSX/Tools/Programs
alias makeotf python $FDK_PROGRAM_ROOT/makeotf/exe/MakeOTF.py
alias otfproof $FDK_PROGRAM_ROOT/otfproof/exe/osx/spot # a binary program, not a python script
alias cffchecker $FDK_PROGRAM_ROOT/tx/exe/osx/tx # a binary program, not a python script
alias otfcompare python $FDK_PROGRAM_ROOT/otfcompare/exe/OTFCompare.py
alias otftableeditor python $FDK_PROGRAM_ROOT/otftableeditor/exe/OTFTableEditor.py
alias comparefamily python $FDK_PROGRAM_ROOT/CompareFamily.py
setenv is a tcsh command, but the commands wouldn't be too hard to replicate in bash. If I'm not terribly mistaken, the command to run makeotf is "python /Users/will/Typesetting/Font/AdobeFDK/FDK1.6-OSX/Tools/Programs/makeotf/exe/MakeOTF.py". This works with the -h option, so far so good.
Now I get stuck, but since I haven't used the tools before I don't know if it's my fault or the software. I'm trying to build an example font I got somewhere from Adobe, which says "In order to use the project files in the examples, you must move the example font directory to the top level directory of the FDK."
I hope I am correct then by putting the font directory at
If I try to run MakeOTF.py as before (with no arguments) I get the following:
will $ python /Users/will/Typesetting/Font/AdobeFDK/FDK1.6-OSX/Tools/Programs/makeotf/exe/MakeOTF.py
Traceback (most recent call last):
File "/Users/will/Typesetting/Font/AdobeFDK/FDK1.6-OSX/Tools/Programs/makeotf/exe/MakeOTF.py", line 56, in ?
from Tkinter import *
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib-tk/Tkinter.py", line 38, in ?
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter
If I try with the -n option (force non GUI mode) I get a long error that starts with: "Error: Could not find makeotflib or makeotflibDB".
Is what I've written making any sense to you? I haven't used python before, so I'm not too sure where to start debugging. Any suggestions you have will be most appreciated. Sorry for this long post!
The FDK has not been tested at Adobe under Mac OSX 10.3, but undoubtedly can be made to work. The next release that will be tested and configured for Mac OSX 10.3 will be out in late summer, early fall.<br /><br />In your e-mails, I have seen three problems.<br /><br />1) tk/Tkinter not installed.<br /><br />The built-in Python does not come with the tk/tKinter graphical user interface modules. Without these, the FDK tools can only be run in command-line mode. This means opening the Terminal windows, and typing commands in the Terminal window. It will work in this mode.<br /><br />You can get the GUI version working, but you'll be on your own for this, for the next few months. I'm pretty sure that all you need to do is to go the Python web site, and get the Acqua Tk download.<br /><br />2) FDK modules not found.<br /><br />The Python interpreter has a couple standard paths where it looks for modules. You can see these by starting it up by itself, and typing:<br />import sys<br />print sys.path<br /><br />sys.path is a list of file paths where Python looks to find modules. The location of all the FDK modules needs to be on this list.<br /><br />There are a couple ways to add to this list. The FDK uses the mechanism whereby you put the each additional file path in a simple text file, and put that fie in Python 'site-packages' directory. On my system, this is in:<br />/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages<br /><br />You can also look in the sys.path list to find where it is. <br /><br />Making these files is the one critical function of the FinishInstall.py script. You can also make them by hand. The list of needed extra file paths is:<br />/adobe/FDK/Tools/SharedData<br />/adobe/FDK/Tools/Programs/OTFProof/exe/osx<br />/adobe/FDK/Tools/Programs/tx/exe<br />/adobe/FDK/Tools/Programs/tx/exe/osx<br /><br />However, it is alot easier to run FinishInstall.py. I suggest that you simply run it using the 'tcsh', from your home directory<br />1) open a new "Terminal" window<br />2) say "tcsh". This switches you to using the 'tcsh' command shell.<br />3) Say " python <path to FDK>/FinishInstall.py"<br />4) say 'exit' when done, to return to the regular bash shell.<br /><br />Note that we do currently have a bug in that the '<path to FDK>' cannot contain spaces. <br /><br />This will accomplish the critical function of the FinishInstall.py script: the command lines for teh FDK will then work. However, it will not help you avoid typing by putting 'alias' commands in your home directory login file. The 'alias' command allows you to specify that a long command string should be substituted whenever you type a word at the beginning of a command line. For example. if you say:<br />alias makeotf="python /Users/will/Typesetting/Font/AdobeFDK/FDK1.6-OSX/Tools/Programs/makeotf/exe/MakeOTF.py "<br /><br />then thereafter you will need to type only 'makeotf', and the command interpreter will think you typed the whole thing.<br /><br />However, an alias lasts only until you close the Terminal window. To always have an 'alias' definition, available, you need to put it in your login file. For bash, this file is '.bash_login', in yoru home directory. (Note that the file name starts with a period, so it will be invisible in the Finder, and the Terminal command '"ls" will show it only if you specify the path). An easy way to get your alias commands into your bash login file is to copy the alias commands from the file made by FinishInit.py. This file is called 'FDK.init'. You will need to edit these commands, as the 'bash' syntax differs from the 'tcsh' syntax. <br />Changes:<br />Instead of saying:<br />setenv FDK_PROGRAM_ROOT '"<path to top level FDK directory>"'<br />you must say:<br />FDK_PROGRAM_ROOT='"<path to top level FDK directory>"'<br />with no spaces on either side of the equals sign.<br /><br />You must edit all the alias commands to change from:<br />alias makeotf python $FDK_PROGRAM_ROOT/makeotf/exe/MakeOTF.py<br />to<br />alias makeotf="python $FDK_PROGRAM_ROOT/makeotf/exe/MakeOTF.py"<br />with no spaces on either side of the equals sign.<br /><br />Hope this helps!
Well, you 've gotten past two problems, only to fnd a third. I see that you are using the command-line makeotf command, to avoid using the GUI. Your alias must be defined correctly, as it clearly is invoking MakeOTF.py. The error report dumps the sys.path list, and I see that all the necessary FDK paths are present. The error report is misleading, as the stack dump shows that the error is that the Python interpreter does find one of the FDK modules, but when it tries to load it, the module is missing some functions.
This problem can only be because the C modules are linked with an older version of Python. I'm afraid that until the next version of the FDK is released, the only work-around is going to be to install Python 2.1 for Mac OSX and use that. You can have two different versions of Python installed. Just make sure that you run FinishInstall.py from your home directory using the older Python. When simply saying 'python' gets you the newer Python, you can fix the aliases to call the older python by using the full path to the python interpreter in the alias definition. Python version 2.1 definitely does not support TK under Mac OS X.
That all makes sense. I'll install Python 2.1 when I can, and after that I'm sure it'll all be fine. Thanks for all of your help, I hope everything goes well for your subsequent release! I appreciate the time you've taken to assist me.
Any progress on the next version of the FDK? I am having the same exact problems that are listed above Unlike Will, I'm not really following this. I understand what you're saying but how to go about it is daunting to me as I'm not a UNIX person. No OS 9 here though