setup.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import os
  2. import platform
  3. import sys
  4. import pkg_resources
  5. from setuptools import find_packages, setup
  6. def read_version(fname="whisper/version.py"):
  7. exec(compile(open(fname, encoding="utf-8").read(), fname, "exec"))
  8. return locals()["__version__"]
  9. requirements = []
  10. if sys.platform.startswith("linux") and platform.machine() == "x86_64":
  11. triton_requirement = "triton==2.0.0"
  12. try:
  13. import re
  14. import subprocess
  15. version_line = (
  16. subprocess.check_output(["nvcc", "--version"]).strip().split(b"\n")[-1]
  17. )
  18. major, minor = re.findall(rb"([\d]+)\.([\d]+)", version_line)[0]
  19. if (int(major), int(minor)) < (11, 4):
  20. # the last version supporting CUDA < 11.4
  21. triton_requirement = "triton==2.0.0.dev20221011"
  22. except (IndexError, OSError, subprocess.SubprocessError):
  23. pass
  24. requirements.append(triton_requirement)
  25. setup(
  26. name="openai-whisper",
  27. py_modules=["whisper"],
  28. version=read_version(),
  29. description="Robust Speech Recognition via Large-Scale Weak Supervision",
  30. long_description=open("README.md", encoding="utf-8").read(),
  31. long_description_content_type="text/markdown",
  32. readme="README.md",
  33. python_requires=">=3.8",
  34. author="OpenAI",
  35. url="https://github.com/openai/whisper",
  36. license="MIT",
  37. packages=find_packages(exclude=["tests*"]),
  38. install_requires=requirements
  39. + [
  40. str(r)
  41. for r in pkg_resources.parse_requirements(
  42. open(os.path.join(os.path.dirname(__file__), "requirements.txt"))
  43. )
  44. ],
  45. entry_points={
  46. "console_scripts": ["whisper=whisper.transcribe:cli"],
  47. },
  48. include_package_data=True,
  49. extras_require={"dev": ["pytest", "scipy", "black", "flake8", "isort"]},
  50. )