setup.py 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. # Ultralytics YOLO 🚀, AGPL-3.0 license
  2. import re
  3. from pathlib import Path
  4. import pkg_resources as pkg
  5. from setuptools import find_packages, setup
  6. # Settings
  7. FILE = Path(__file__).resolve()
  8. PARENT = FILE.parent # root directory
  9. README = (PARENT / 'README.md').read_text(encoding='utf-8')
  10. REQUIREMENTS = [f'{x.name}{x.specifier}' for x in pkg.parse_requirements((PARENT / 'requirements.txt').read_text())]
  11. def get_version():
  12. file = PARENT / 'ultralytics/__init__.py'
  13. return re.search(r'^__version__ = [\'"]([^\'"]*)[\'"]', file.read_text(encoding='utf-8'), re.M)[1]
  14. setup(
  15. name='ultralytics', # name of pypi package
  16. version=get_version(), # version of pypi package
  17. python_requires='>=3.8',
  18. license='AGPL-3.0',
  19. description=('Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, '
  20. 'pose estimation and image classification.'),
  21. long_description=README,
  22. long_description_content_type='text/markdown',
  23. url='https://github.com/ultralytics/ultralytics',
  24. project_urls={
  25. 'Bug Reports': 'https://github.com/ultralytics/ultralytics/issues',
  26. 'Funding': 'https://ultralytics.com',
  27. 'Source': 'https://github.com/ultralytics/ultralytics'},
  28. author='Ultralytics',
  29. author_email='hello@ultralytics.com',
  30. packages=find_packages(), # required
  31. include_package_data=True,
  32. install_requires=REQUIREMENTS,
  33. extras_require={
  34. 'dev': [
  35. 'ipython',
  36. 'check-manifest',
  37. 'pytest',
  38. 'pytest-cov',
  39. 'coverage',
  40. 'mkdocs-material',
  41. 'mkdocstrings[python]',
  42. 'mkdocs-redirects', # for 301 redirects
  43. 'mkdocs-ultralytics-plugin>=0.0.25', # for meta descriptions and images, dates and authors
  44. ],
  45. 'export': [
  46. 'coremltools>=7.0.b1',
  47. 'openvino-dev>=2023.0',
  48. 'tensorflowjs', # automatically installs tensorflow
  49. ], },
  50. classifiers=[
  51. 'Development Status :: 4 - Beta',
  52. 'Intended Audience :: Developers',
  53. 'Intended Audience :: Education',
  54. 'Intended Audience :: Science/Research',
  55. 'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)',
  56. 'Programming Language :: Python :: 3',
  57. 'Programming Language :: Python :: 3.8',
  58. 'Programming Language :: Python :: 3.9',
  59. 'Programming Language :: Python :: 3.10',
  60. 'Programming Language :: Python :: 3.11',
  61. 'Topic :: Software Development',
  62. 'Topic :: Scientific/Engineering',
  63. 'Topic :: Scientific/Engineering :: Artificial Intelligence',
  64. 'Topic :: Scientific/Engineering :: Image Recognition',
  65. 'Operating System :: POSIX :: Linux',
  66. 'Operating System :: MacOS',
  67. 'Operating System :: Microsoft :: Windows', ],
  68. keywords='machine-learning, deep-learning, vision, ML, DL, AI, YOLO, YOLOv3, YOLOv5, YOLOv8, HUB, Ultralytics',
  69. entry_points={'console_scripts': ['yolo = ultralytics.cfg:entrypoint', 'ultralytics = ultralytics.cfg:entrypoint']})