我正在尝试了解 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.6
2.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 安装的第三方包和我自己安装的包。