SOLVED RoboFont 4 doesn’t seem to be checking the 'external_packages' directory
-
I like to use UFO Normalizer to format UFOs the same between RoboFont and external scripts.
However, before Version 0.6.1, UFO Normalizer had a bug in which images were deleted from normalization. This is a big problem in one of my font projects, where I have to frequently place images to trace.
I’ve found that RF4 seems to ship with UFO Normalizer 0.6.0, so the image bug still exists for me when saving with normalization turned on.
However, it seems that I should be able to override embedded libraries by copying the UFO Normalizer unzipped release folder
ufoNormalizer-0.6.1
intoLibrary/Application Support/RoboFont/external_packages
.But, it now seems that either I am doing something wrong or this isn’t actually working in RF4.
After I have added the release to
external_packages
and restarted RF, I run the following to test the version:import ufonormalizer print(ufonormalizer.__version__)
...and I get the response of
0.5.4
.(Probably not relevant: I’ve also checked that my global installation of ufonormalizer is up to date, and it is at
0.6.1
.)To make sure this wasn’t just an issue in UFO Normalizer, I also tested this with FontMake
2.4.2
. I get a similar problem from here:import fontmake print(fontmake.__version__) >>> 2.4.0
Finally, I read the entire page on overriding embedded libraries, and I see the suggestion to check the path of a library. When I do this, I see that RF seems to not be scanning the
external_packages
directory, after all.import fontmake print(fontmake.__path__) >>> ['/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fontmake']
I have also tested getting the library folder with
git clone https://github.com/googlefonts/fontmake.git
, then copying that folder intoexternal_packages
, but that also fails.Is there anything else I should try here, or might this just be a bug?
Thanks!
-
the order is important: py stops looking for packages if there is one found
strange you can not acces those packages: could you send a screenshot of that folder?
everything should be at root level, not in a sub folder inside
external_packages
-
@frederik said in RoboFont 4 doesn’t seem to be checking the 'external_packages' directory:
import sys
print(sys.path)
Thanks, Frederik!
It is there, but it comes early in the list... could that be causing my problem? Is there a way to change that?
/Users/stephennixon /Users/stephennixon/Library/Application Support/RoboFont/external_packages /Applications/RoboFont.app/Contents/Resources/lib/python37.zip /Applications/RoboFont.app/Contents/Resources/lib/python3.7 /Applications/RoboFont.app/Contents/Resources/lib/python3.7/lib-dynload /Applications/RoboFont.app/Contents/Resources/lib/python3.7/site-packages.zip /Applications/RoboFont.app/Contents/Resources/lib/python3.7/site-packages /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7 /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/drawBot-3.120-py3.7.egg /Users/stephennixon/Library/Application Support/RoboFont/plugins/DrawBot.roboFontExt/lib /Users/stephennixon/Library/Application Support/RoboFont/plugins/master-tools.roboFontExt/lib
The public beta is probably what I need, though. I’ll give it a try!
-
FYI: the public beta released during the hackathon has ufonormalizer 0.6.1
https://robofont.com/events/robohackathon2021/#robofont-hackathon-public-beta
-
if you run:
import sys print(sys.path)
it should print out a list of paths to check and
/Users/<yourUserName>/Library/Application Support/RoboFont/external_packages
should be there.