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