如何打包python模块所依赖的共享对象?

Joh*_*ohn 5 c++ python boost-python

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

luc*_*asg 0

声明依赖关系

\n\n

有一个选项 setup.py叫做install_requires = [""]:\nEx :

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

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

\n\n

捆绑一切

\n\n

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

\n\n
\n

PiPy 中的依赖项:

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

PyPI 中 \xe2\x80\x99t 的依赖项

\n\n

如果您的项目依赖于未在 PyPI 中注册的\xe2\x80\x99 包,\n 您仍然可以依赖它们,只要它们可供下载\n:

\n\n
    \n
  • 一个鸡蛋,采用标准 distutils sdist 格式,
  • \n
  • 单个 .py 文件,
  • \n
  • 或 VCS 存储库(Subversion、Mercurial 或 Git)。您只需将一些 URL 添加到 setup() 的 dependency_links 参数即可。
  • \n
\n
\n