我正在为Python项目编写setup.py文件,以便我可以分发它。其目的是最终创建一个.egg文件,但我试图首先使用distutils和常规的.zip来工作。为什么我不能使用distutils将这些数据文件包含在Python发行版中?
这是一个Eclipse的PyDev项目,我的文件结构是这样的:
ProjectName
src
somePackage
module1.py
module2.py
...
config
propsFile1.ini
propsFile2.ini
propsFile3.ini
setup.py
这里是到目前为止我setup.py代码:
from distutils.core import setup
setup(name='ProjectName',
version='1.0',
packages=['somePackage'],
data_files = [('config', ['..\config\propsFile1.ini',
'..\config\propsFile2.ini',
'..\config\propsFile3.ini'])]
)
当我运行这个(与sdist为一个命令行参数),一个.zip文件会与所有的python文件一起生成,但不包括配置文件。我认为这个代码:
data_files = [('config', ['..\config\propsFile1.ini',
'..\config\propsFile2.ini',
'..\config\propsFile3.ini'])]
表明,这3个指定配置文件应该被复制到zip分发了“config”目录。为什么这段代码不能完成任何事情?我究竟做错了什么?
(我也曾尝试与配置文件的路径玩耍......但似乎没有任何帮助。将Python中抛出一个错误或警告,如果路径是不正确的/没有被发现的文件?)
谢谢。我得到以下错误:'警告:找不到匹配'config \ *''的文件。我已经尝试改变为.. \ config \ *,但是这也没有帮助...任何想法? – froadie 2010-06-03 16:02:02
'\'和'*'之间有空格。尝试删除? 否则尝试使用正斜杠。我使用了正斜杠,但因为您似乎已经使用了反斜杠,所以我在这里用'\'替换了'/'。不过,我发现在Windows上使用/并不会真的引起任何问题。 如果实在不行,就检查你是否在正确的轨道上通过硬编码文件名进去,如: 包括配置/ propsFile1.ini 包括配置/ propsFile2.ini #等... – Umang 2010-06-03 16:55:55
空间只有因为格式化 - 当我将它们放在一起时,由于某种原因隐藏了斜线。更改为正斜杠并没有什么区别... Python似乎会自动将其转换回来,同样的错误消息。在单个文件上得到同样的错误...... :(任何线索有什么问题吗?它是一个路径问题吗? – froadie 2010-06-03 17:07:06