属性文件(ini 文件)未包含在 Python 包中

3 投票
1 回答
3263 浏览
提问于 2025-04-17 08:50

我该如何在一个Python包中包含一个properties/ini文件,以便在Linux和Windows上都能使用呢?

我尝试通过把ini文件放在项目文件夹下,来创建一个Python包,这样我就可以用类似下面的代码来访问它:

File = open("props.ini", 'r')

然后我把我的包打包成一个.tar.gz文件,如下所示:

$ python setup.py sdist

接着我在一台Linux机器上安装这个包:

$ sudo pip install package_name.tar.gz

我在这里得到了我的.py文件:

/usr/local/lib/python2.7/dist-packages/package_name/*.py

我在这里得到了我的脚本来打开程序:

/usr/local/bin/myScript

但是我没有得到我的.ini文件。

1 个回答

6

一种方法是把你的配置文件放在源代码的一个目录下。

比如说,如果你的源代码在 src 目录下,你可以把配置文件放在 src/config 里。这样一来,在 src 目录里的任何代码都可以通过以下方式访问这个配置文件:

config_filename = os.path.join(os.path.dirname(os.path.realpath(__file__)), 
                               'config', <filename>)

为了在代码分发时保持相同的目录结构,setup.py 文件中的 setup 函数需要通过 package_data 参数来了解这些新文件:

setup(
...
package_data={'src': ['config/*',]},
...
)

撰写回答