setup.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from setuptools import setup, find_packages
  2. import subprocess
  3. def parse_requirements(filename):
  4. with open(filename) as f:
  5. lines = f.read().splitlines()
  6. requires = []
  7. for line in lines:
  8. if "http" in line:
  9. pkg_name_with_version = line.split('/')[-1].split('-')[0]
  10. requires.append(pkg_name_with_version)
  11. else:
  12. requires.append(line)
  13. return requires
  14. def get_version():
  15. command = ["git", "describe", "--tags"]
  16. try:
  17. version = subprocess.check_output(command).decode().strip()
  18. version_parts = version.split("-")
  19. if len(version_parts) > 1 and version_parts[0].startswith("magic_pdf"):
  20. return version_parts[1]
  21. else:
  22. raise ValueError(f"Invalid version tag {version}. Expected format is magic_pdf-<version>-released.")
  23. except Exception as e:
  24. print(e)
  25. return "0.0.0"
  26. requires = parse_requirements('requirements.txt')
  27. setup(
  28. name="magic_pdf", # 项目名
  29. # version="0.1.3", # 版本号
  30. version=get_version(), # 自动从tag中获取版本号
  31. packages=find_packages(), # 包含所有的包
  32. install_requires=requires, # 项目依赖的第三方库
  33. python_requires=">=3.9", # 项目依赖的 Python 版本
  34. # entry_points={"console_scripts": ["my_command=my_project.main:run"]}, # 项目提供的可执行命令
  35. include_package_data=True, # 是否包含非代码文件,如数据文件、配置文件等
  36. zip_safe=False, # 是否使用 zip 文件格式打包,一般设为 False
  37. )