#!/usr/bin/env python# Setup script for PyPI; use CMakeFile.txt to build extension modulesfrom setuptools import setupfrom distutils.command.install_headers import install_headersfrom distutils.command.build_py import build_pyfrom pybind11 import __version__import ospackage_data = ['include/pybind11/detail/class.h','include/pybind11/detail/common.h','include/pybind11/detail/descr.h','include/pybind11/detail/init.h','include/pybind11/detail/internals.h','include/pybind11/detail/typeid.h','include/pybind11/attr.h','include/pybind11/buffer_info.h','include/pybind11/cast.h','include/pybind11/chrono.h','include/pybind11/common.h','include/pybind11/complex.h','include/pybind11/eigen.h','include/pybind11/embed.h','include/pybind11/eval.h','include/pybind11/functional.h','include/pybind11/iostream.h','include/pybind11/numpy.h','include/pybind11/operators.h','include/pybind11/options.h','include/pybind11/pybind11.h','include/pybind11/pytypes.h','include/pybind11/stl.h','include/pybind11/stl_bind.h',]# Prevent installation of pybind11 headers by setting# PYBIND11_USE_CMAKE.if os.environ.get('PYBIND11_USE_CMAKE'):headers = []else:headers = package_dataclass InstallHeaders(install_headers):"""Use custom header installer because the default one flattens subdirectories"""def run(self):if not self.distribution.headers:returnfor header in self.distribution.headers:subdir = os.path.dirname(os.path.relpath(header, 'include/pybind11'))install_dir = os.path.join(self.install_dir, subdir)self.mkpath(install_dir)(out, _) = self.copy_file(header, install_dir)self.outfiles.append(out)# Install the headers inside the package as wellclass BuildPy(build_py):def build_package_data(self):build_py.build_package_data(self)for header in package_data:target = os.path.join(self.build_lib, 'pybind11', header)self.mkpath(os.path.dirname(target))self.copy_file(header, target, preserve_mode=False)setup(name='pybind11',version=__version__,description='Seamless operability between C++11 and Python',author='Wenzel Jakob',author_email='wenzel.jakob@epfl.ch',url='https://github.com/pybind/pybind11',download_url='https://github.com/pybind/pybind11/tarball/v' + __version__,packages=['pybind11'],license='BSD',headers=headers,zip_safe=False,cmdclass=dict(install_headers=InstallHeaders, build_py=BuildPy),classifiers=['Development Status :: 5 - Production/Stable','Intended Audience :: Developers','Topic :: Software Development :: Libraries :: Python Modules','Topic :: Utilities','Programming Language :: C++','Programming Language :: Python :: 2.7','Programming Language :: Python :: 3','Programming Language :: Python :: 3.2','Programming Language :: Python :: 3.3','Programming Language :: Python :: 3.4','Programming Language :: Python :: 3.5','Programming Language :: Python :: 3.6','License :: OSI Approved :: BSD License'],keywords='C++11, Python bindings',long_description="""pybind11 is a lightweight header-only library thatexposes C++ types in Python and vice versa, mainly to create Python bindings ofexisting C++ code. Its goals and syntax are similar to the excellentBoost.Python by David Abrahams: to minimize boilerplate code in traditionalextension modules by inferring type information using compile-timeintrospection.The main issue with Boost.Python-and the reason for creating such a similarproject-is Boost. Boost is an enormously large and complex suite of utilitylibraries that works with almost every C++ compiler in existence. Thiscompatibility has its cost: arcane template tricks and workarounds arenecessary to support the oldest and buggiest of compiler specimens. Now thatC++11-compatible compilers are widely available, this heavy machinery hasbecome an excessively large and unnecessary dependency.Think of this library as a tiny self-contained version of Boost.Python witheverything stripped away that isn't relevant for binding generation. Withoutcomments, the core header files only require ~4K lines of code and depend onPython (2.7 or 3.x, or PyPy2.7 >= 5.7) and the C++ standard library. Thiscompact implementation was possible thanks to some of the new C++11 languagefeatures (specifically: tuples, lambda functions and variadic templates). Sinceits creation, this library has grown beyond Boost.Python in many ways, leadingto dramatically simpler binding code in many common situations.""")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。