Chris Shenton wrote:
> I've got an app that needs to read and parse a data file (a RADIUS
> dictionary, not a Python "dictionary" but a flat file).  I want to
> include this file in my egg so I don't have to depend on the OS having
> RADIUS installed.
> 
> In the application's top-level setup.py, I add my data/ subdir to the
> package_data list:
> 
>     package_data={'bianca': ['i18n/*/LC_MESSAGES/*.mo', 'data/*']},
> 
> and see that the files in data/ get added to my egg.  Good so far. 
> 
> What path do I use to reference that file for reading?  Again, I am
> trying to avoid hard-coded absolute filesystem paths.  But trying paths
> like:
> 
>   freeradius_dictionary
>   /data/freeradius_dictionary
>   /bianca/data/freeradius_dictionary
>   /bianca/freeradius_dictionary
> 
> didn't work for me: file not found.
> 
> What's the pattern for paths to files that live inside eggs, rather than
> on the larger filesystem? Is there some PATH I need to specify to the
> app or Pylons? Something else?


from pkg_resources import resource_filename
path = resource_filename('bianca', 'data/freeradius_dictionary')

If data would have been a python package, which I suppose it's not, then:

path = resource_filename('bianca.data', 'freeradius_dictionary')

HTH,
Alberto

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to