【问题标题】:Help with Python setup.py with multiple folders使用多个文件夹帮助 Python setup.py
【发布时间】:2011-06-06 04:22:06
【问题描述】:

我正在尝试在 OBS 上构建我的程序。你能告诉我 setup.py 应该是什么样子来创建一个文件夹结构吗,例如,如果我有这个:

../MyProgram
COPYING
README
mainscript.pyw
/applications
    /app1
        /icons
            pic1.png
        app1.py
    /app2
        /icons
            pic2.png
        /scripts
            script1.py
            script2.py
        app2.py

等等

我阅读了 Python 文档,使用了“package_dir”、“packages”,但 OBS 仍然给我错误,它找不到图标文件。我猜安装脚本不会创建它们。当我尝试在本地构建一个 rpm 时,它给了我同样的错误。当我查看 BUILD 文件夹时,没有创建文件夹“应用程序”,下面也没有任何内容。

非常感谢您的帮助。请举个例子。谢谢你。

【问题讨论】:

    标签: python setup.py


    【解决方案1】:

    您可以尝试在您的 MANIFEST.in 中添加以下行:

    recursive-include applications *.png
    

    包含所有图标。

    要嵌入您的 python 文件,请尝试像这样显式声明您的包:

    setup(
       packages=[
          "applications",
          "applications.app1",
          "applications.app2",
          "applications.app2.scripts",
       ],
       data_files=[    # declare the list of  data_files (destination directory, (data files))
          ("applications/app1/icons", ("applications/app1/icons/pic1.png",)),
          ("applications/app2/icons", ("applications/app2/icons/pic2.png",)),
       ]
       .... # your other setup options (name, version...)
    )
    

    但是您必须将 __init__.py 文件放在每个目录下,以允许 python 将它们作为包。

    【讨论】:

    • 为什么不使用嫁接?
    【解决方案2】:

    我在这里找到了帮助:https://wiki.python.org/moin/Distutils/Tutorial

    您为要包含的文件创建一个 Manifest.in 文件:

    recursive-include applications/app1/icons *.png
    recursive-include applications/app2/icons *.png
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      相关资源
      最近更新 更多