setup.py 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. from pathlib import Path
  2. from setuptools import setup, find_packages
  3. from magic_pdf.libs.version import __version__
  4. def parse_requirements(filename):
  5. with open(filename) as f:
  6. lines = f.read().splitlines()
  7. requires = []
  8. for line in lines:
  9. if "http" in line:
  10. pkg_name_without_url = line.split('@')[0].strip()
  11. requires.append(pkg_name_without_url)
  12. else:
  13. requires.append(line)
  14. return requires
  15. if __name__ == '__main__':
  16. with Path(Path(__file__).parent,
  17. 'README.md').open(encoding='utf-8') as file:
  18. long_description = file.read()
  19. setup(
  20. name="magic_pdf", # 项目名
  21. version=__version__, # 自动从tag中获取版本号
  22. packages=find_packages() + ["magic_pdf.resources"], # 包含所有的包
  23. package_data={
  24. "magic_pdf.resources": ["**"], # 包含magic_pdf.resources目录下的所有文件
  25. },
  26. install_requires=parse_requirements('requirements.txt'), # 项目依赖的第三方库
  27. extras_require={
  28. "lite": ["paddleocr==2.7.3",
  29. "paddlepaddle==3.0.0b1;platform_system=='Linux'",
  30. "paddlepaddle==2.6.1;platform_system=='Windows' or platform_system=='Darwin'",
  31. ],
  32. "full": ["unimernet==0.2.3", # unimernet升级0.2.3,移除torchtext/eva-decord的依赖
  33. "torch>=2.2.2,<=2.3.1", # torch2.4.0及之后版本未测试,先卡住版本上限
  34. "torchvision>=0.17.2,<=0.18.1", # torchvision 受torch版本约束
  35. "matplotlib<=3.9.0;platform_system=='Windows'", # 3.9.1及之后不提供windows的预编译包,避免一些没有编译环境的windows设备安装失败
  36. "matplotlib;platform_system=='Linux' or platform_system=='Darwin'", # linux 和 macos 不应限制matplotlib的最高版本,以避免无法更新导致的一些bug
  37. "ultralytics>=8.3.48", # yolov8,公式检测
  38. "paddleocr==2.7.3", # 2.8.0及2.8.1版本与detectron2有冲突,需锁定2.7.3
  39. "paddlepaddle==3.0.0b1;platform_system=='Linux'", # 解决linux的段异常问题
  40. "paddlepaddle==2.6.1;platform_system=='Windows' or platform_system=='Darwin'", # windows版本3.0.0b1效率下降,需锁定2.6.1
  41. "struct-eqtable==0.3.2", # 表格解析
  42. "einops", # struct-eqtable依赖
  43. "accelerate", # struct-eqtable依赖
  44. "doclayout_yolo==0.0.2", # doclayout_yolo
  45. "rapidocr-paddle", # rapidocr-paddle
  46. "rapidocr_onnxruntime",
  47. "rapid_table==0.3.0", # rapid_table
  48. "PyYAML", # yaml
  49. "openai", # openai SDK
  50. "detectron2"
  51. ],
  52. "old_linux":[
  53. "albumentations<=1.4.20", # 1.4.21引入的simsimd不支持2019年及更早的linux系统
  54. ]
  55. },
  56. description="A practical tool for converting PDF to Markdown", # 简短描述
  57. long_description=long_description, # 详细描述
  58. long_description_content_type="text/markdown", # 如果README是Markdown格式
  59. url="https://github.com/opendatalab/MinerU",
  60. python_requires=">=3.9", # 项目依赖的 Python 版本
  61. entry_points={
  62. "console_scripts": [
  63. "magic-pdf = magic_pdf.tools.cli:cli",
  64. "magic-pdf-dev = magic_pdf.tools.cli_dev:cli"
  65. ],
  66. }, # 项目提供的可执行命令
  67. include_package_data=True, # 是否包含非代码文件,如数据文件、配置文件等
  68. zip_safe=False, # 是否使用 zip 文件格式打包,一般设为 False
  69. )