text: from os import path
  import setuptools
  from setuptools import setup, find_packages
  
  version = int(setuptools.__version__.split('.')[0])
  assert version > 30, "Tensorpack installation requires setuptools > 30"
  
  this_directory = path.abspath(path.dirname(__file__))
  
  # setup metainfo
  libinfo_py = path.join(this_directory, 'tensorpack', 'libinfo.py')
  libinfo_content = open(libinfo_py, "r").readlines()
  version_line = [l.strip() for l in libinfo_content if l.startswith('__version__')][0]
  exec(version_line)  # produce __version__
  
  with open(path.join(this_directory, 'README.md'), 'rb') as f:
      long_description = f.read().decode('utf-8')
  
  
  def add_git_version():
  
      def get_git_version():
          from subprocess import check_output
          try:
              return check_output("git describe --tags --long --dirty".split()).decode('utf-8').strip()
          except Exception:
              return __version__  # noqa
  
      newlibinfo_content = [l for l in libinfo_content if not l.startswith('__git_version__')]
      newlibinfo_content.append('__git_version__ = "{}"'.format(get_git_version()))
      with open(libinfo_py, "w") as f:
          f.write("".join(newlibinfo_content))
  
  
  add_git_version()
  
  
  setup(
      name='tensorpack',
      author="TensorPack contributors",
      author_email="ppwwyyxxc@gmail.com",
      url="https://github.com/tensorpack/tensorpack",
      keywords="tensorflow, deep learning, neural network",
      license="Apache",
  
      version=__version__,   # noqa
      description='A Neural Network Training Interface on TensorFlow',
      long_description=long_description,
      long_description_content_type='text/markdown',
  
      packages=find_packages(exclude=["examples", "tests"]),
      zip_safe=False,  		    # dataset and __init__ use file
  
      install_requires=[
          "numpy>=1.14",
          "six",
          "termcolor>=1.1",
          "tabulate>=0.7.7",
          "tqdm>4.29.0",
          "msgpack>=0.5.2",
          "msgpack-numpy>=0.4.4.2",
          "pyzmq>=16",
          "psutil>=5",
          "subprocess32; python_version < '3.0'",
          "functools32; python_version < '3.0'",
      ],
      tests_require=['flake8', 'scikit-image'],
      extras_require={
          'all': ['scipy', 'h5py', 'lmdb>=0.92', 'matplotlib', 'scikit-learn'],
          'all: "linux" in sys_platform': ['python-prctl'],
          'all: python_version < "3.0"': ['tornado'],
      },
  
      # https://packaging.python.org/guides/distributing-packages-using-setuptools/#universal-wheels
      options={'bdist_wheel': {'universal': '1'}},
  )
  