我有一个用 C++ 实现的 python 包,我正在使用 setuptools 分发它。我的 C++ 代码依赖于一些共享对象,特别是 boost.python 库。我应该如何分发这些共享对象?目前,我要求软件包用户单独安装 boost C++ 库,但我宁愿将所有内容捆绑在一个 setuptools 发行版中,以使他/她更容易。LD_LIBRARY_PATH
目前,除了安装我的包之外,他们还必须设置 boost 库及其环境变量。
问问题
1837 次
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 的依赖关系:
- 安装项目时,无论是使用 EasyInstall、setup.py install 还是 setup.py develop,所有尚未安装的依赖项都将被定位(通过 PyPI)、下载、构建(如果需要)和安装。
- 您项目中的任何脚本都将使用包装器安装,这些包装器在运行时验证指定依赖项的可用性,并确保将正确的版本添加到 sys.path(例如,如果已安装多个版本)。
- Python Egg 发行版将包含一个列出依赖项的元数据文件
PyPI 中没有的依赖项
如果您的项目依赖于未在 PyPI 中注册的包,您仍然可以依赖它们,只要它们可以通过以下方式下载:
- 一个鸡蛋,采用标准的 distutils sdist 格式,
- 单个 .py 文件,
- 或 VCS 存储库(Subversion、Mercurial 或 Git)。您只需在 setup() 的 dependency_links 参数中添加一些 URL。
于 2013-07-05T09:48:17.697 回答