mirror of
https://github.com/wassname/scikit-image.git
synced 2026-06-27 18:25:32 +08:00
40d6a51779
Use venv for all builds and install everything from wheelhouse Use venv and all minimum requirements Edit requirements.txt in place and use one call Update minimum versions and install exclusively from wheelhouse Use mpl 1.3.1 on py 3.2 Fix pip invocation Fix pip invocation again Another fix to pip invocation Explicitly use venv python to call build_versions.py Move venv creation and activation to top level Do not use site-packages Fix minimum matplotlib ver and Pillow version check Fix minimum matplotlib ver Improve error message on version check Add more debug info Even more debug info More debug info Yet another debug print Fix python 2.7 installation problem check for PIL.Image version on install Add debug to before_install Try a pip install virtualenv first Clean up virtualenv creation, add debug info, fix PySide script install Fix virtualenv path for PySide install Fix venv location and activation Try no site packages and fix python 2.7 install
161 lines
5.0 KiB
Python
Executable File
161 lines
5.0 KiB
Python
Executable File
#! /usr/bin/env python
|
|
|
|
descr = """Image Processing SciKit
|
|
|
|
Image processing algorithms for SciPy, including IO, morphology, filtering,
|
|
warping, color manipulation, object detection, etc.
|
|
|
|
Please refer to the online documentation at
|
|
http://scikit-image.org/
|
|
"""
|
|
|
|
DISTNAME = 'scikit-image'
|
|
DESCRIPTION = 'Image processing routines for SciPy'
|
|
LONG_DESCRIPTION = descr
|
|
MAINTAINER = 'Stefan van der Walt'
|
|
MAINTAINER_EMAIL = 'stefan@sun.ac.za'
|
|
URL = 'http://scikit-image.org'
|
|
LICENSE = 'Modified BSD'
|
|
DOWNLOAD_URL = 'http://github.com/scikit-image/scikit-image'
|
|
VERSION = '0.11dev'
|
|
PYTHON_VERSION = (2, 6)
|
|
|
|
import re
|
|
import os
|
|
import sys
|
|
|
|
import setuptools
|
|
from distutils.command.build_py import build_py
|
|
from distutils.version import LooseVersion
|
|
|
|
|
|
# These are manually checked.
|
|
# These packages are sometimes installed outside of the setuptools scope
|
|
DEPENDENCIES = {}
|
|
with open('requirements.txt', 'rb') as fid:
|
|
data = fid.read().decode('utf-8', 'replace')
|
|
for line in data.splitlines():
|
|
pkg, _, version_info = line.replace('==', '>=').partition('>=')
|
|
# Only require Cython if we have a developer checkout
|
|
if pkg.lower() == 'cython' and not VERSION.endswith('dev'):
|
|
continue
|
|
DEPENDENCIES[str(pkg).lower()] = str(version_info)
|
|
|
|
|
|
def configuration(parent_package='', top_path=None):
|
|
if os.path.exists('MANIFEST'): os.remove('MANIFEST')
|
|
|
|
from numpy.distutils.misc_util import Configuration
|
|
config = Configuration(None, parent_package, top_path)
|
|
|
|
config.set_options(
|
|
ignore_setup_xxx_py=True,
|
|
assume_default_configuration=True,
|
|
delegate_options_to_subpackages=True,
|
|
quiet=True)
|
|
|
|
config.add_subpackage('skimage')
|
|
config.add_data_dir('skimage/data')
|
|
|
|
return config
|
|
|
|
|
|
def write_version_py(filename='skimage/version.py'):
|
|
template = """# THIS FILE IS GENERATED FROM THE SKIMAGE SETUP.PY
|
|
version='%s'
|
|
"""
|
|
|
|
vfile = open(os.path.join(os.path.dirname(__file__),
|
|
filename), 'w')
|
|
|
|
try:
|
|
vfile.write(template % VERSION)
|
|
finally:
|
|
vfile.close()
|
|
|
|
|
|
def get_package_version(package):
|
|
for version_attr in ('__version__', 'VERSION', 'version'):
|
|
version_info = getattr(package, version_attr, None)
|
|
if version_info and str(version_attr) == version_attr:
|
|
return str(version_info)
|
|
|
|
|
|
def check_requirements():
|
|
if sys.version_info < PYTHON_VERSION:
|
|
raise SystemExit('You need Python version %d.%d or later.' \
|
|
% PYTHON_VERSION)
|
|
for (package_name, min_version) in DEPENDENCIES.items():
|
|
if package_name == 'cython':
|
|
package_name = 'Cython'
|
|
dep_error = ''
|
|
if package_name.lower() == 'pillow':
|
|
package_name = 'PIL.Image'
|
|
min_version = '1.1.7'
|
|
try:
|
|
package = __import__(package_name,
|
|
fromlist=[package_name.rpartition('.')[0]])
|
|
except ImportError:
|
|
dep_error = ('You need `%s` version %s or later.'
|
|
% (package_name, min_version))
|
|
else:
|
|
if package_name == 'PIL':
|
|
package_version = package.PILLOW_VERSION
|
|
else:
|
|
package_version = get_package_version(package)
|
|
|
|
if LooseVersion(min_version) > LooseVersion(package_version):
|
|
dep_error = ('You need `%s` version %s or later,'
|
|
'found version %s.'
|
|
% (package_name, min_version,
|
|
package_version))
|
|
if dep_error:
|
|
raise ImportError(dep_error)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
check_requirements()
|
|
|
|
write_version_py()
|
|
|
|
from numpy.distutils.core import setup
|
|
setup(
|
|
name=DISTNAME,
|
|
description=DESCRIPTION,
|
|
long_description=LONG_DESCRIPTION,
|
|
maintainer=MAINTAINER,
|
|
maintainer_email=MAINTAINER_EMAIL,
|
|
url=URL,
|
|
license=LICENSE,
|
|
download_url=DOWNLOAD_URL,
|
|
version=VERSION,
|
|
|
|
classifiers=[
|
|
'Development Status :: 4 - Beta',
|
|
'Environment :: Console',
|
|
'Intended Audience :: Developers',
|
|
'Intended Audience :: Science/Research',
|
|
'License :: OSI Approved :: BSD License',
|
|
'Programming Language :: C',
|
|
'Programming Language :: Python',
|
|
'Programming Language :: Python :: 3',
|
|
'Topic :: Scientific/Engineering',
|
|
'Operating System :: Microsoft :: Windows',
|
|
'Operating System :: POSIX',
|
|
'Operating System :: Unix',
|
|
'Operating System :: MacOS',
|
|
],
|
|
|
|
configuration=configuration,
|
|
packages=setuptools.find_packages(exclude=['doc']),
|
|
include_package_data=True,
|
|
zip_safe=False, # the package can run out of an .egg file
|
|
|
|
entry_points={
|
|
'console_scripts': ['skivi = skimage.scripts.skivi:main'],
|
|
},
|
|
|
|
cmdclass={'build_py': build_py},
|
|
)
|