为什么不能使用distutils在Python发行版中包含这些数据文件?

2024-09-28 13:23:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在写一篇设置.py一个Python项目的文件,以便我可以分发它。我们的目标是最终创建一个.egg文件,但我试图首先使用distutils和一个常规的.zip文件使其正常工作。在

这是一个eclipse pydev项目,我的文件结构如下:

ProjectName
   src
      somePackage
         module1.py
         module2.py
         ...
   config
      propsFile1.ini
      propsFile2.ini
      propsFile3.ini
   setup.py

这是我的设置.py目前代码:

^{pr2}$

当我运行这个命令行时(使用sdist作为命令行参数),会生成一个.zip文件,其中包含所有python文件,但是不包括配置文件。我以为这个密码:

 data_files = [('config', ['..\config\propsFile1.ini', 
                                    '..\config\propsFile2.ini', 
                                    '..\config\propsFile3.ini'])]

指示应将这3个指定的配置文件复制到zip发行版中的“config”目录中。为什么这段代码没有完成任何事情?我做错什么了?在

(我也尝试过使用配置文件的路径。。。但似乎什么也帮不上忙。如果路径不正确/找不到文件,Python是否会抛出错误或警告?)在


Tags: 文件项目代码py路径config目标egg
3条回答

最后,我通过将整个config目录移到src文件夹中来实现这一点。这一定意味着我的路走错了。。。但是,由于我似乎找不到备份目录的方法(“…\”没什么区别),我现在还是坚持这个解决方案。在

创建一个MANIFEST.in文件,如下所示:

include config\*

编辑)查看此处了解更多信息:http://docs.python.org/distutils/sourcedist.html#specifying-the-files-to-distribute

我想您必须转义文件名中的反斜杠;例如,不是'..\config\whatever',而是写'..\\config\\whatever',或者使用原始字符串语法:r'..\config\whatever'。在

相关问题 更多 >

    热门问题