4

这应该是一个常见的场景,但还没有找到任何相关的帖子..

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

  • 在源存储库中有resources目录,然后将文件移动到/usr/share/foo/
  • 将资源直接放在下面的python包中/usr/lib/python-<version>/foo/

有什么建议么?

编辑:正如建议的那样,澄清将在其上运行的主要平台是 Linux。

4

3 回答 3

2

这个问题有些不完整,因为正确的答案取决于底层操作系统,因为每个操作系统都有自己的作案手法。在 linux(和大多数基于 unix 的操作系统)中,例如 /usr/share/foo 或 /usr/local/share/foo 将是标准。在 OS X 中你可以做同样的事情,但我认为“/Library/Application Support/Foo”(虽然这通常用于存储设置和诸如此类的东西)将是放置这些东西的地方,尽管如果你正在编写库之后“框架”的想法,所有资源都将包含在 /Library/Frameworks/Foo.Framework" ...另一方面,OS X 上的应用程序应将所有资源保留在 Foo.app 内的 Resources 目录中

于 2009-05-11T18:37:35.457 回答
2

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

当然,除了 Apache 提供的静态媒体,/var/www/html/foo/foo-1.1/media/...

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

据我了解,它们遵循 Linux 标准。

我们尽量远离各种地点/usr/lib//lib因为那些地方感觉它们是分布的一部分。我们倾向于/opt并且/var因为它们明显与 linux 发行版目录分开。

于 2009-05-11T20:01:23.603 回答
0

标准位置是您的标准库所在的位置。但是从您所写的内容中,我听起来并不觉得您需要您的 python 库。我认为您应该尝试一下Virtualenv

如果你不想经历所有的麻烦(好吧,它真的只是sudo easy_install virtualenv为你),你可以尝试将你的 python lib 转储到你的任何目录中,~/然后按照以下方式做一些事情

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

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

请记住,给出的示例仅用于测试目的。对于任何活的东西,我建议您使用distutil此处给出了使用示例。

于 2009-05-11T19:58:44.123 回答