我正在从源代码构建deb包。用于在RHEL中的“site-packages”中安装模块的源。
在Ubuntu上,'site-packages'对我不起作用。通过网络搜索,它说python Ubuntu会在'dist-packages'
中要求它但是也有一些参考资料表明从源代码构建的python会在'site-packages'中查找
现在我很困惑,我的deb软件包应该在哪里安装模块,以便它可以工作,无论从源代码构建的python还是从Ubuntu repo安装的
答案 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安装。如上所述,确切的路径取决于安装。