为什么 wheel 安装将共享对象放在 site-packages 文件夹而不是 package 文件夹中?

Why does wheel installation put shared objects in site-packages folder instead of package folder?

我有一个 python 二进制发行版 [wheel] 通过

创建
python setup.py bdist_wheel

车轮看起来如下

 unzip -l dist/<package-name>-1.0.0-cp36-cp36m-linux_x86_64.whl
Archive:  dist/<package-name>-1.0.0-cp36-cp36m-linux_x86_64.whl
  Length      Date    Time    Name
---------  ---------- -----   ----
  2996432  2021-01-07 21:47   lib<xyz>.so
  7821608  2021-01-07 21:48   lib<abc>.so
  4414000  2021-01-07 21:48   <module>.cpython-36m-x86_64-linux-gnu.so
      581  2021-01-07 20:05   <package-name>/__init__.py
      636  2021-01-07 20:05   <package-name>/version.py

安装轮子后,为什么*.so文件会安装到site-package文件夹中?

/opt/conda/lib/python3.6/site-packages/

其他文件安装在里面

/opt/conda/lib/python3.6/site-packages/<package-name>

Wheel 本质上是一种压缩包分发形式。因此它可以解压缩[像一个 zip 文件]。压缩轮内的整个目录结构将按原样复制到 site-packages 文件夹中。这就是为什么

  1. 共享库存储在站点包中并且
  2. 其余的包文件[例如__init__.py 存储在站点包的包子文件夹中。

wheel 基本上在 site-packages 文件夹中解压缩。