traj_dist笔记 setup.py

文章介绍了如何使用Cython构建一个Python库,实现多种轨迹距离计算函数,如欧氏距离、DTW等。通过`setuptools`和`distutils`定义并编译Cython扩展模块,依赖numpy和其他库。
摘要由CSDN通过智能技术生成
from setuptools import setup, find_packages
from distutils.extension import Extension
#用于定义 Cython 扩展模块
from Cython.Distutils import build_ext
#用于构建 Cython 扩展
import numpy

ext_modules = [Extension("traj_dist.cydist.basic_geographical", [ "traj_dist/cydist/basic_geographical.pyx" ]),
               Extension("traj_dist.cydist.basic_euclidean", [ "traj_dist/cydist/basic_euclidean.pyx" ]),
               Extension("traj_dist.cydist.sspd", [ "traj_dist/cydist/sspd.pyx" ]),
               Extension("traj_dist.cydist.dtw", [ "traj_dist/cydist/dtw.pyx" ]),
               Extension("traj_dist.cydist.lcss", [ "traj_dist/cydist/lcss.pyx" ]),
               Extension("traj_dist.cydist.hausdorff", [ "traj_dist/cydist/hausdorff.pyx" ]),
               Extension("traj_dist.cydist.discret_frechet", [ "traj_dist/cydist/discret_frechet.pyx" ]),
               Extension("traj_dist.cydist.frechet", [ "traj_dist/cydist/frechet.pyx" ]),
               #Extension("traj_dist.cydist.distance", [ "traj_dist/cydist/distance.pyx" ]),
               Extension("traj_dist.cydist.segment_distance", [ "traj_dist/cydist/segment_distance.pyx" ]),
               Extension("traj_dist.cydist.sowd", [ "traj_dist/cydist/sowd.pyx" ]),
               Extension("traj_dist.cydist.erp", [ "traj_dist/cydist/erp.pyx" ]),
               Extension("traj_dist.cydist.edr", [ "traj_dist/cydist/edr.pyx" ])]
'''
通过 Extension 类创建了多个扩展模块的实例。每个实例包含了模块名和对应的 .pyx 文件路径
'''

setup(
    name = "trajectory_distance",
    version = "1.0",
    author = "Brendan Guillouet",
    author_email = "brendan.guillouet@gmail.com",
    cmdclass = { 'build_ext': build_ext },
    ext_modules=ext_modules,
    include_dirs=[numpy.get_include()],
    install_requires =  ["numpy>=1.9.1", "cython>=0.21.2", "shapely>=1.5.6", "Geohash"],
    description = "Distance to compare trajectories in Cython",
    packages = ["traj_dist", "traj_dist.cydist", "traj_dist.pydist"],
)
'''
设置函数调用:
name = "trajectory_distance":包的名称。
version = "1.0":指定包的版本。
author 和 author_email:作者和联系邮箱。
cmdclass = {'build_ext': build_ext}:指定 build_ext 命令用于构建 Cython 扩展。
ext_modules=ext_modules:包含之前定义的所有 Cython 扩展模块。
include_dirs=[numpy.get_include()]:添加 numpy 的头文件目录,这对于 Cython 扩展来说是必需的。
install_requires:列出了安装这个包需要的依赖项。
description:提供了对包的简短描述。
packages:列出了包中的所有 Python 包。
'''

按照Cython笔记:基本使用方法-CSDN博客 的说法,下面这样写也行

from distutils.core import setup
from Cython.Build import cythonize

ext_modules = cythonize([
    "traj_dist/cydist/basic_geographical.pyx",
    "traj_dist/cydist/basic_euclidean.pyx",
    "traj_dist/cydist/sspd.pyx",
    "traj_dist/cydist/dtw.pyx",
    "traj_dist/cydist/lcss.pyx",
    "traj_dist/cydist/hausdorff.pyx",
    "traj_dist/cydist/discret_frechet.pyx",
    "traj_dist/cydist/frechet.pyx",
    "traj_dist/cydist/segment_distance.pyx",
    "traj_dist/cydist/sowd.pyx",
    "traj_dist/cydist/erp.pyx",
    "traj_dist/cydist/edr.pyx"
])

setup(
    name='trajectory_distance',
    ext_modules=ext_modules
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值