在 Linux 上存储自定义 Python 模块的适当位置

在 Linux 上存储自定义 Python 模块的适当位置

我正在尝试了解 Python 包在 Linux 上的安装和存储位置和方式,并找到存储它们的最佳位置。我的存储库是 Debian Wheezy。

我想将所有自定义 Python 模块存储在一个文件夹中。

我很困惑,因为

1. 我可以看到某些软件包(使用 apt-get 安装),例如pygame在以下所有位置:

  • /usr/share/pyshared/pygame
  • /usr/lib/pyshared/python2.7/pygame
  • /usr/lib/pyshared/python2.6/pygame
  • /usr/lib/python2.7/dist-packages/pygame
  • /usr/lib/python2.6/dist-packages/pygame

有些文件从 pyshared 链接到lib/python2.7/dist-packages

2. 安装一些其他软件包/usr/share/pyshared然后链接到/usr/lib/python2.62.7。

3. 最后,当我使用 easy_install 安装某些东西时,它会进入/usr/local/lib/python2.7/dist-packages/某个 .egg 文件。

就所有这些混乱而言,您认为什么是保存自定义模块的正确方法,以及它们的最佳文件格式是什么?单个文件模块是否应该只称为 something.py,而多个文件模块应该放在带有 的文件夹中__init__.py?对吗?是否有任何理由也将单个文件模块保存在文件夹中?

最重要的是,我应该把它们保存在哪里?/usr/local/lib/python2.7/my-packages/还是保存在 dist-packages 里面?

答案1

只要你相应地更改 $PYTHONPATH,你就可以将它们保存在任何你想要的地方。我不会将它们放在 /usr/lib/ 中,因为它是为属于 .deb 包的文件保留的,并且可以通过 dpkg/apt-get 轻松卸载。当然,如果你想保持系统清洁的话。

您对单文件模块的看法是正确的。

如果我是你,我会把它们放在 /opt/my-python-packages 或 ~/my-python-packages - 以区分 easy_install 安装的第三方包和我自己安装的包。

相关内容