代码之家  ›  专栏  ›  技术社区  ›  Dimitri Tcaciuc

python包的标准非代码资源位置

  •  4
  • Dimitri Tcaciuc  · 技术社区  · 17 年前

    这应该是一个常见的场景,但尚未找到任何相关帖子。。

    我计划部署一个Python库(我想这同样适用于常规应用程序),它使用一些图像和其他资源文件。这些物品的标准位置是什么?我想,对于这个项目 Foo ,选择将是

    • resources /usr/share/foo/
    • 将资源直接放在下面的python包中 /usr/lib/python-<version>/foo/

    编辑:

    3 回复  |  直到 17 年前
        1
  •  2
  •   Nico    17 年前

    这个问题有些不完整,因为正确的答案取决于底层操作系统,因为每个操作系统都有自己的操作方式。在linux(以及大多数基于unix的操作系统)中,例如/usr/share/foo或/usr/local/share/foo将是标准。在OSX中,您也可以这样做,但我认为“/Library/Application Support/Foo”(虽然通常用于存储设置等等)将是放置这些东西的地方,尽管如果您按照“Framework”的思想编写库,所有资源都将包含在/Library/Frameworks/Foo.Framework中" ... 另一方面,OS X上的应用程序应该将所有资源保存在Foo.app中的resources目录中

        2
  •  2
  •   S.Lott    17 年前

    我们将非.py文件放入 /opt/foo/foo-1.2/...

    当然,对于Apache提供服务的静态媒体,这一点除外 /var/www/html/foo/foo-1.1/media/...

    当然,客户特定的配置文件除外。他们去 /var/opt/customer/foo/...

    我们尽量远离 /usr/lib/ /lib 各种各样的地点,因为它们感觉自己是发行版的一部分。我们倾向于 /opt /var

        3
  •  0
  •   Steen    17 年前

    这个 标准 位置是标准LIB的位置。但从您所写的内容来看,我并不认为您需要python库。我想你应该试试 Virtualenv

    如果你不想经历所有的麻烦(好吧,这真的等于 sudo easy_install virtualenv 对于您),您可以尝试将python库转储到 ~/ 并按照

    import sys
    sys.path.append( '/full/path/to/your/lib/goes/here')
    

    到任何使用您的库的给定应用程序。

    请记住,给出的示例仅用于测试目的。对于任何活物,我建议您使用 distutil here .

    推荐文章