(原谅我可怜的英语)
我正在为我的Python应用程序编写setup.py。
我的应用程序需要一些静态文件(图片)。我应该将这些文件添加到setup.py中的data_files数组中,文件将安装在Linux上的“/ usr / xxx”路径中。
然后我的应用程序如何在安装后访问这些文件?我认为在我的应用程序中使用abslote路径(如/usr/share/xxx/xxx.png)并不是一个好主意(它不适用于Windows)。
答案 0 :(得分:2)
你应该使用sys.prefix而不是绝对路径:
filename = os.path.join(sys.prefix, "share", "xxx", "xxx.png")
答案 1 :(得分:0)
distribute / setuptools为此提供了pkg_resources(并将与python setup.py develop
或pip 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', '')