<p>为了增强<a href="https://stackoverflow.com/users/220765/mhsmith">mhsmith</a>的优秀<a href="https://stackoverflow.com/a/47182945/2650249">answer</a>,下面是使用<code>delocate</code>在MacOS上执行的步骤:</p>
<ol>
<li><p>安装<code>sundials</code>,例如使用自制程序:</p>
<pre><code>$ brew install sundials
</code></pre></li>
<li><p>生成包:</p>
<pre><code>$ python setup.py bdist_wheel
</code></pre></li>
<li><p><code>auditwheel show</code>/<code>auditwheel repair</code>的挂件是<code>delocate-listdeps</code>/<code>delocate-wheel</code>,因此首先分析生成的wheel文件:</p>
^{3美元</li>
<li><p>固定车轮锉刀:</p>
<pre><code>$ delocate-wheel -v -w dist_fixed dist/poc-0.0.0-cp27-cp27m-macosx_10_13_intel.whl
Fixing: dist/poc-0.0.0-cp27-cp27m-macosx_10_13_intel.whl
Copied to package .dylibs directory:
/usr/local/Cellar/sundials/2.7.0_3/lib/libsundials_cvodes.2.9.0.dylib
/usr/local/Cellar/sundials/2.7.0_3/lib/libsundials_nvecserial.2.7.0.dylib
</code></pre></li>
</ol>
<p>在<code>dist_fixed</code>目录中,您将拥有捆绑的轮子。您会注意到尺寸差异:</p>
<pre><code>$ ls -l dist/ dist_fixed/
dist/:
total 72
-rw-r r 1 hoefling wheel 36030 10 Nov 20:25 poc-0.0.0-cp27-cp27m-macosx_10_13_intel.whl
dist_fixed/:
total 240
-rw-r r 1 hoefling wheel 120101 10 Nov 20:34 poc-0.0.0-cp27-cp27m-macosx_10_13_intel.whl
</code></pre>
<p>如果您列出了捆绑式控制盘的dep,您将注意到所需的库现在已绑定(由前缀<code>@loader_path</code>表示):</p>
<pre><code>$ delocate-listdeps all dist_fixed/poc-0.0.0-cp27-cp27m-macosx_10_13_intel.whl
/usr/lib/libSystem.B.dylib
@loader_path/../.dylibs/libsundials_cvodes.2.9.0.dylib
@loader_path/../.dylibs/libsundials_nvecserial.2.7.0.dylib
</code></pre>
<p>安装捆绑式控制盘(请注意,捆绑式lib已正确安装):</p>
<pre><code>$ pip install dist_fixed/poc-0.0.0-cp27-cp27m-macosx_10_13_intel.whl
Processing ./dist_fixed/poc-0.0.0-cp27-cp27m-macosx_10_13_intel.whl
Installing collected packages: poc
Successfully installed poc-0.0.0
$ pip show -f poc
Name: poc
Version: 0.0.0
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Location: /Users/hoefling/.virtualenvs/stackoverflow-py27/lib/python2.7/site-packages
Requires:
Files:
poc-0.0.0.dist-info/DESCRIPTION.rst
poc-0.0.0.dist-info/INSTALLER
poc-0.0.0.dist-info/METADATA
poc-0.0.0.dist-info/RECORD
poc-0.0.0.dist-info/WHEEL
poc-0.0.0.dist-info/metadata.json
poc-0.0.0.dist-info/top_level.txt
poc/.dylibs/libsundials_cvodes.2.9.0.dylib
poc/.dylibs/libsundials_nvecserial.2.7.0.dylib
poc/__init__.py
poc/__init__.pyc
poc/cython_extensions/__init__.py
poc/cython_extensions/__init__.pyc
poc/cython_extensions/helloworld.so
poc/do_stuff.so
</code></pre>