'dist-packages'与'site-packages'中的Python模块

时间:2017-02-20 07:46:44

标签: python debian

我正在从源代码构建deb包。用于在RHEL中的“site-packages”中安装模块的源。

在Ubuntu上,'site-packages'对我不起作用。通过网络搜索,它说python Ubuntu会在'dist-packages'

中要求它

但是也有一些参考资料表明从源代码构建的python会在'site-packages'中查找

现在我很困惑,我的deb软件包应该在哪里安装模块,以便它可以工作,无论从源代码构建的python还是从Ubuntu repo安装的

3 个答案:

答案 0 :(得分:7)

dist-packages是一个Debian约定,存在于基于Debian的发行版中。当我们使用像apt-get这样的包管理器安装包时,这些包被安装到dist-packages。同样,如果您使用pip安装并且pip是通过软件包管理器安装的,那么这些软件包将安装在dist-packages中。

如果你从源代码构建python,那么pip会附带它,现在如果你使用这个pip安装一个包,它将被安装到site-packages中。

所以这取决于您使用的是哪个python二进制文件,如果您使用来自包管理器的二进制文件,它将在dist-packages中搜索,如果您使用手动安装的二进制文件,那么它就是#39 ; ll搜索网站包。

答案 1 :(得分:0)

我从IRC学到的是我应该在' dist-packages'中安装这些模块。假设管理员只安装了Ubuntu repo提供的python。

答案 2 :(得分:0)

有一个“ purelib”和一个“ platlib”目录。您可以通过运行以下命令找出它们的含义:

$ python -c "import sysconfig; print sysconfig.get_paths()['purelib']"

$ python -c "import sysconfig; print sysconfig.get_paths()['platlib']"

但是请注意,通过此操作,您已经选择了某个python安装。如上所述,确切的路径取决于安装。