首页 > 解决方案 > 如何使用 setuptools 为 wheel 包放置和加载预构建的本地库

问题描述

我正在尝试为依赖本机库的 Python 模块创建一个 wheel 包。它仅适用于特定的 Linux 发行版,不会公开,很好,我不想使用 setuptools 构建它Extension

现在我有 Python 代码和几个.so文件,并且想将它们放入一个包中,以便我们可以使用pip.

到目前为止,我指定了模块MANIFEST.in并调用setuptools.setupinclude_package_data=True因此在我在环境下安装包后,清单中指定的文件位于下面树中的目录 (3) 中venv

venv
└── lib    <----- (1)
    └── python3.6
        └── site-packages <----- (2)
            └── my_module <----- (3)

我的问题是:

  1. 有一些 PyPI 包将.so文件放在 (1) 中。如果有可能我也想把我.so的文件放在那里,我如何在我的setup.py?
  2. 同样,我的一个.so是使用 SWIG 生成的,它需要在 (2) 中。我可以手动将它移到那里,但如果有办法setup.py我想知道。
  3. 对于这种情况,现在我需要LD_LIBRARY_PATH在使用我的代码执行 Python 脚本之前手动指定。使用 setuptools 有没有更好的方法来做到这一点?

标签: pythonsetuptoolssetup.py

解决方案


推荐阅读