[英]How do I distribute data files with a python package such that they're readable?
我有一个python模块,其设置如下:
from distutils.core import setup
setup = (
...
package_data={'mypackage': ['my/file.data']})
在这样的包中:
mypackage/
setup.py
mypackage/
__init__.py
my/
file.data
和__init__.py
看起来像这样:
import pkgutil
DATA = pkgutil.get_data(__name__, 'my/file.data')
很简单。 我想要的只是将一些数据存入我的python插件。 但是,当我安装它时
sudo python setup.py install
并尝试运行它,我明白了
IOError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/mypackage/my/file.data'
它安装的权限不正确。
如何在python中分发数据和配置文件,以便在运行时读取它们?
我担心你不能开箱即用:如果我没记错,文件权限只是按原样复制。 在安装命令复制之前,您需要编写自定义生成命令以更改生成目录中的文件权限。
最简单的解决方案是在您的存储库或源代码树中拥有所需的权限。
我也有这个问题,我解决了。
正如@ÉricAraujo所说,你应该改变你的file.data
的权限。 如果您的文件权限为400
,则还将安装权限400
。 但是如果您使用root
权限安装了软件包,则所有者将是root
root
。 普通用户无法读取这些内容。
我认为将权限更改为644
就足够了。 请记住在currnet位置删除mypackage.pkg-info
, build
和dist
,或者不能应用数据文件的新权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.