属性文件(ini 文件)未包含在 Python 包中
我该如何在一个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/*',]},
...
)