python/setup.py (66 lines of code) (raw):

# pylint: disable=invalid-name, exec-used """Setup mxnet package.""" from __future__ import absolute_import import os import sys # need to use distutils.core for correct placement of cython dll kwargs = {} if "--inplace" in sys.argv: from distutils.core import setup from distutils.extension import Extension else: from setuptools import setup from setuptools.extension import Extension kwargs = {'install_requires': ['numpy', 'requests', 'graphviz'], 'zip_safe': False} with_cython = False if '--with-cython' in sys.argv: with_cython = True sys.argv.remove('--with-cython') # We can not import `mxnet.info.py` in setup.py directly since mxnet/__init__.py # Will be invoked which introduces dependences CURRENT_DIR = os.path.dirname(__file__) libinfo_py = os.path.join(CURRENT_DIR, 'mxnet/libinfo.py') libinfo = {'__file__': libinfo_py} exec(compile(open(libinfo_py, "rb").read(), libinfo_py, 'exec'), libinfo, libinfo) LIB_PATH = libinfo['find_lib_path']() __version__ = libinfo['__version__'] def config_cython(): """Try to configure cython and return cython configuration""" if not with_cython: return [] # pylint: disable=unreachable if os.name == 'nt': print("WARNING: Cython is not supported on Windows, will compile without cython module") return [] try: from Cython.Build import cythonize # from setuptools.extension import Extension if sys.version_info >= (3, 0): subdir = "_cy3" else: subdir = "_cy2" ret = [] path = "mxnet/cython" if os.name == 'nt': library_dirs = ['mxnet', '../build/Release', '../build'] libraries = ['libmxnet'] else: library_dirs = None libraries = None for fn in os.listdir(path): if not fn.endswith(".pyx"): continue ret.append(Extension( "mxnet/%s/.%s" % (subdir, fn[:-4]), ["mxnet/cython/%s" % fn], include_dirs=["../include/", "../nnvm/include"], library_dirs=library_dirs, libraries=libraries, language="c++")) return cythonize(ret) except ImportError: print("WARNING: Cython is not installed, will compile without cython module") return [] setup(name='mxnet', version=__version__, description=open(os.path.join(CURRENT_DIR, 'README.md')).read(), packages=[ 'mxnet', 'mxnet.module', 'mxnet._ctypes', 'mxnet.rnn', 'mxnet._cy2', 'mxnet._cy3', 'mxnet.notebook', 'mxnet.contrib' ], data_files=[('mxnet', [LIB_PATH[0]])], url='https://github.com/dmlc/mxnet', ext_modules=config_cython(), **kwargs)