Python 安装数据文件,然后再次查找它们



我有一个针对Linux机器的python软件包,需要将其语言环境文件安装到可访问的位置。现在,我将它们安装到sys.prefix + "/share/locale/".

但是,我发现了Ubuntu和pip的一个小警告。在默认条件下,Ubuntu 会安装 pip 到/usr/local安装的软件包,并在安装过程中将sys.prefix设置为该软件包。但是,安装后,当包运行时,前缀是/usr,这意味着我的代码找不到安装在/usr/local的语言环境文件。

我可以简单地对位置进行硬编码,但我不想这样做,因为它会使软件包的可移植性降低,并且需要用户将其作为 root 安装。这些作为data_files添加到 setup.py 中,不会作为 python 包被发现。

我还能如何确保我的包可以在之后找到我的语言环境文件 安装?

我想过在安装过程中向包的__init__.py添加一行,这会创建一个指向区域设置目录位置的变量。但是,在不更改源文件的情况下编辑正在安装的文件似乎并非易事。

这是一个仅限python 3的软件包。

也许使用pkg_resources中可用的资源函数来查找文件?

from pkg_resources import resource_stream, resource_filename
with resource_stream('my_package', 'locale/foo.dat') as infp:
# ...
# ... or ...
foo_location = resource_filename('my_package', 'locale/foo.dat')

相关内容

  • 没有找到相关文章

最新更新