安装Python包的静态文件

时间:2011-07-23 11:23:36

标签: python

(原谅我可怜的英语)

我正在为我的Python应用程序编写setup.py。

我的应用程序需要一些静态文件(图片)。我应该将这些文件添加到setup.py中的data_files数组中,文件将安装在Linux上的“/ usr / xxx”路径中。

然后我的应用程序如何在安装后访问这些文件?我认为在我的应用程序中使用abslote路径(如/usr/share/xxx/xxx.png)并不是一个好主意(它不适用于Windows)。

2 个答案:

答案 0 :(得分:2)

你应该使用sys.prefix而不是绝对路径:

filename = os.path.join(sys.prefix, "share", "xxx", "xxx.png")

答案 1 :(得分:0)

distribute / setuptools为此提供了pkg_resources(并将与python setup.py developpip install -e安装的软件包一起使用)。

api example ::

    import pkg_resources 
    assert pkg_resources.resource_exists('fabric', 'README.txt')
    assert not pkg_resources.resource_isdir('fabric', 'README.txt')
    myfile_path = pkg_resources.resource_filename('fabric', 'README.txt')
    myopen_file = pkg_resources.resource_stream('fabric', 'README.txt')
    myfile_str  = pkg_resources.resource_string('fabric', 'README.txt')
    contents_of_package = pkg_resources.resource_listdir('fabric', '')