setup.py 1.7 KB

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