6

我有一个用 C++ 实现的 python 包,我正在使用 setuptools 分发它。我的 C++ 代码依赖于一些共享对象,特别是 boost.python 库。我应该如何分发这些共享对象?目前,我要求软件包用户单独安装 boost C++ 库,但我宁愿将所有内容捆绑在一个 setuptools 发行版中,以使他/她更容易。LD_LIBRARY_PATH目前,除了安装我的包之外,他们还必须设置 boost 库及其环境变量。

4

1 回答 1

0

声明依赖

有一个选项 setup.py被称为install_requires = [""]:Ex:

setup(
    name='django-cherrypy',
    version='0.1',
    packages=packages,
    license='LICENSE',
    description='cherrypy, running under django',
    long_description=open('README.md').read(),
    author='Calvin Cheng',
    author_email='calvin@calvinx.com',
    install_requires=['cherrypy-wsgiserver'],
    extra_requires=['newrelic'],
    url='https://github.com/od-eon/django-cherrypy',
)

此设置要求 chrerryPy WSGI 服务器库。

捆绑一切

一切都在这里解释:http: //pythonhosted.org/distribute/setuptools.html#declaring-dependencies

PiPy 的依赖关系:

  1. 安装项目时,无论是使用 EasyInstall、setup.py install 还是 setup.py develop,所有尚未安装的依赖项都将被定位(通过 PyPI)、下载、构建(如果需要)和安装。
  2. 您项目中的任何脚本都将使用包装器安装,这些包装器在运行时验证指定依赖项的可用性,并确保将正确的版本添加到 sys.path(例如,如果已安装多个版本)。
  3. Python Egg 发行版将包含一个列出依赖项的元数据文件

PyPI 中没有的依赖项

如果您的项目依赖于未在 PyPI 中注册的包,您仍然可以依赖它们,只要它们可以通过以下方式下载:

  • 一个鸡蛋,采用标准的 distutils sdist 格式,
  • 单个 .py 文件,
  • 或 VCS 存储库(Subversion、Mercurial 或 Git)。您只需在 setup() 的 dependency_links 参数中添加一些 URL。
于 2013-07-05T09:48:17.697 回答