Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何打包python模块所依赖的共享对象? 我有一个用C++实现的Python包,我使用StupUoToots分发它。我的C++代码依赖于一些共享对象,特别是BooSt.Python库。我应该如何分发这些共享对象?目前我要求包用户单独安装Boost C++库,但我宁愿把所有东西捆绑在一个StudioToots分发中,以便使他/她更容易。目前,除了安装我的软件包外,他们还必须设置boost库及其LD\u LIBRARY\u PATH环境变量。声明依赖项_C++_Python_Boost Python - Fatal编程技术网

如何打包python模块所依赖的共享对象? 我有一个用C++实现的Python包,我使用StupUoToots分发它。我的C++代码依赖于一些共享对象,特别是BooSt.Python库。我应该如何分发这些共享对象?目前我要求包用户单独安装Boost C++库,但我宁愿把所有东西捆绑在一个StudioToots分发中,以便使他/她更容易。目前,除了安装我的软件包外,他们还必须设置boost库及其LD\u LIBRARY\u PATH环境变量。声明依赖项

如何打包python模块所依赖的共享对象? 我有一个用C++实现的Python包,我使用StupUoToots分发它。我的C++代码依赖于一些共享对象,特别是BooSt.Python库。我应该如何分发这些共享对象?目前我要求包用户单独安装Boost C++库,但我宁愿把所有东西捆绑在一个StudioToots分发中,以便使他/她更容易。目前,除了安装我的软件包外,他们还必须设置boost库及其LD\u LIBRARY\u PATH环境变量。声明依赖项,c++,python,boost-python,C++,Python,Boost Python,setup.py中有一个名为install\u requires=[“”]的选项: 例: 此设置要求使用cherrypy WSGI服务器库 包扎一切 这里解释了一切: 在PiPy的从属关系: 安装项目时,使用EasyInstall, setup.py安装或setup.py开发,所有依赖项都不是 已安装的将被定位(通过PyPI)、下载、构建(如果需要 必要时),并安装 项目中的任何脚本都将被删除 安装了包装器,用于验证 在运行时指定依赖项,并确保 将版本添加到sys.path(例如,如果已添加多个

setup.py
中有一个名为
install\u requires=[“”]
的选项: 例:

此设置要求使用cherrypy WSGI服务器库

包扎一切 这里解释了一切:

在PiPy的从属关系:

  • 安装项目时,使用EasyInstall, setup.py安装或setup.py开发,所有依赖项都不是 已安装的将被定位(通过PyPI)、下载、构建(如果需要 必要时),并安装
  • 项目中的任何脚本都将被删除 安装了包装器,用于验证 在运行时指定依赖项,并确保 将版本添加到sys.path(例如,如果已添加多个版本 已安装)
  • PythonEgg发行版将包含一个元数据文件 列出依赖项
  • 不在PyPI中的依赖项

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

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

    您是否尝试过将依赖项静态链接到Python共享对象中?当然,您需要获得您的依赖项的静态库。我确实想到了,但是由于各种技术原因,需要在模块之间共享BooSt.python库。C++依赖于一个共享对象,我可以用C++代码来构建它,而不是另一个Python包。我想我真的需要distribute/setuptools/任何东西来构建我的共享对象(就像它构建我的扩展模块一样)并将其安装到合理的地方。是否有任何工具可以做到这一点?将手工构建脚本与这些自动化操作(批处理、bjam、cmake等)捆绑在一起。但是,在Boost.Python的情况下,您不需要安装它,只需要链接标题,对吗?我不知道“链接标题”是什么意思,但在运行时,我的Python扩展将寻找一个Boost.Python共享对象,它最好在某个地方。也许“链接标题”的意思是将标题放在某个地方,然后静态编译boost.python,这样就不需要在运行时查找boost.python共享对象。这可能会起作用,但会消除跨不同python扩展共享boost.python注册表的可能性。捆绑手工脚本听起来很有希望。我该如何告诉setuptools呢?setuptools将把共享对象放在哪里?
    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',
    )