setup.py 4.57 KB
Newer Older
赵小蒙's avatar
赵小蒙 committed
1
from pathlib import Path
赵小蒙's avatar
赵小蒙 committed
2
from setuptools import setup, find_packages
赵小蒙's avatar
赵小蒙 committed
3
from magic_pdf.libs.version import __version__
赵小蒙's avatar
赵小蒙 committed
4
5


6
7
8
9
10
11
12
13
def parse_requirements(filename):
    with open(filename) as f:
        lines = f.read().splitlines()

    requires = []

    for line in lines:
        if "http" in line:
赵小蒙's avatar
赵小蒙 committed
14
15
            pkg_name_without_url = line.split('@')[0].strip()
            requires.append(pkg_name_without_url)
16
17
18
19
20
        else:
            requires.append(line)

    return requires

21

赵小蒙's avatar
赵小蒙 committed
22
if __name__ == '__main__':
赵小蒙's avatar
赵小蒙 committed
23
24
25
    with Path(Path(__file__).parent,
              'README.md').open(encoding='utf-8') as file:
        long_description = file.read()
赵小蒙's avatar
赵小蒙 committed
26
27
    setup(
        name="magic_pdf",  # 项目名
赵小蒙's avatar
赵小蒙 committed
28
        version=__version__,  # 自动从tag中获取版本号
29
        license="AGPL-3.0",
30
        packages=find_packages() + ["magic_pdf.resources"] + ["magic_pdf.model.sub_modules.ocr.paddleocr2pytorch.pytorchocr.utils.resources"],  # 包含所有的包
31
32
        package_data={
            "magic_pdf.resources": ["**"],  # 包含magic_pdf.resources目录下的所有文件
33
            "magic_pdf.model.sub_modules.ocr.paddleocr2pytorch.pytorchocr.utils.resources": ["**"],  # pytorchocr.resources目录下的所有文件
34
        },
赵小蒙's avatar
赵小蒙 committed
35
        install_requires=parse_requirements('requirements.txt'),  # 项目依赖的第三方库
赵小蒙's avatar
赵小蒙 committed
36
        extras_require={
37
38
39
40
41
            "lite": [
                    "paddleocr==2.7.3",
                    "paddlepaddle==3.0.0b1;platform_system=='Linux'",
                    "paddlepaddle==2.6.1;platform_system=='Windows' or platform_system=='Darwin'",
            ],
42
            "full": [
43
                     "matplotlib<=3.9.0;platform_system=='Windows'",  # 3.9.1及之后不提供windows的预编译包,避免一些没有编译环境的windows设备安装失败
44
                     "matplotlib>=3.10;platform_system=='Linux' or platform_system=='Darwin'",  # linux 和 macos 不应限制matplotlib的最高版本,以避免无法更新导致的一些bug
45
                     "ultralytics>=8.3.48",  # yolov8,公式检测
46
                     "doclayout_yolo==0.0.2b1",  # doclayout_yolo
47
                     "dill>=0.3.9,<1",  # doclayout_yolo
48
                     "rapid_table>=1.0.5,<2.0.0",  # rapid_table
49
50
51
52
53
54
                     "PyYAML>=6.0.2,<7",  # yaml
                     "ftfy>=6.3.1,<7", # unimernet_hf
                     "openai>=1.70.0,<2",  # openai SDK
                     "shapely>=2.0.7,<3",  # imgaug-paddleocr2pytorch
                     "pyclipper>=1.3.0,<2",  # paddleocr2pytorch
                     "omegaconf>=2.3.0,<3",  # paddleocr2pytorch
55
56
            ],
            "full_old_linux":[
57
58
                    "matplotlib>=3.10,<=3.10.1",
                    "ultralytics>=8.3.48,<=8.3.104",  # yolov8,公式检测
59
                    "doclayout_yolo==0.0.2b1",  # doclayout_yolo
60
61
62
63
64
65
66
67
                    "dill==0.3.9",  # doclayout_yolo
                    "PyYAML==6.0.2",  # yaml
                    "ftfy==6.3.1",  # unimernet_hf
                    "openai==1.71.0",  # openai SDK
                    "shapely==2.1.0",  # imgaug-paddleocr2pytorch
                    "pyclipper==1.3.0.post6",  # paddleocr2pytorch
                    "omegaconf==2.3.0",  # paddleocr2pytorch
                    "albumentations==1.4.20", # 1.4.21引入的simsimd不支持2019年及更早的linux系统
68
                    "rapid_table==1.0.3",  # rapid_table新版本依赖的onnxruntime不支持2019年及更早的linux系统
69
            ],
赵小蒙's avatar
赵小蒙 committed
70
        },
赵小蒙's avatar
赵小蒙 committed
71
72
73
        description="A practical tool for converting PDF to Markdown",  # 简短描述
        long_description=long_description,  # 详细描述
        long_description_content_type="text/markdown",  # 如果README是Markdown格式
74
75
76
77
        project_urls={
            "Home": "https://mineru.net/",
            "Repository": "https://github.com/opendatalab/MinerU",
        },
78
79
80
81
82
83
84
85
        keywords=["magic-pdf, mineru, MinerU, convert, pdf, markdown"],
        classifiers=[
            "Programming Language :: Python :: 3.10",
            "Programming Language :: Python :: 3.11",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
        ],
        python_requires=">=3.10,<4",  # 项目依赖的 Python 版本
赵小蒙's avatar
update:  
赵小蒙 committed
86
87
        entry_points={
            "console_scripts": [
icecraft's avatar
icecraft committed
88
89
                "magic-pdf = magic_pdf.tools.cli:cli",
                "magic-pdf-dev = magic_pdf.tools.cli_dev:cli" 
赵小蒙's avatar
update:  
赵小蒙 committed
90
91
            ],
        },  # 项目提供的可执行命令
赵小蒙's avatar
赵小蒙 committed
92
93
94
        include_package_data=True,  # 是否包含非代码文件,如数据文件、配置文件等
        zip_safe=False,  # 是否使用 zip 文件格式打包,一般设为 False
    )