SimpleITK / SimpleITKPythonPackage

A setup script to generate a Python Wheels
17 stars 11 forks source link

Update readme with information for users to install #34

Closed blowekamp closed 7 years ago

blowekamp commented 7 years ago

@zivy @thewtex Are you able to follow the instruction to build and install SimpleITK from the github repo?

Thanks!

thewtex commented 7 years ago

@blowekamp Here is what I get:

[matt:~/bin] [simpleitk] % pip install git+https://github.com/SimpleITK/SimpleITKPythonPackage.git
Downloading/unpacking git+https://github.com/SimpleITK/SimpleITKPythonPackage.git
  Cloning https://github.com/SimpleITK/SimpleITKPythonPackage.git to /tmp/pip-YbsxNL-build
  Running setup.py (path:/tmp/pip-YbsxNL-build/setup.py) egg_info for package from git+https://github.com/SimpleITK/SimpleITKPythonPackage.git
    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'

    Installed /tmp/pip-YbsxNL-build/scikit_build-0.6.0-py2.7.egg
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/tmp/pip-YbsxNL-build/setup.py", line 50, in <module>
        zip_safe=False
      File "/usr/lib/python2.7/distutils/core.py", line 111, in setup
        _setup_distribution = dist = klass(attrs)
      File "/home/matt/bin/venvs/simpleitk/local/lib/python2.7/site-packages/setuptools/dist.py", line 262, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/home/matt/bin/venvs/simpleitk/local/lib/python2.7/site-packages/setuptools/dist.py", line 287, in fetch_build_eggs
        replace_conflicting=True,
      File "/home/matt/bin/venvs/simpleitk/local/lib/python2.7/site-packages/pkg_resources.py", line 631, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "/home/matt/bin/venvs/simpleitk/local/lib/python2.7/site-packages/pkg_resources.py", line 867, in best_match
        dist = working_set.find(req)
      File "/home/matt/bin/venvs/simpleitk/local/lib/python2.7/site-packages/pkg_resources.py", line 509, in find
        raise VersionConflict(dist, req)
    pkg_resources.VersionConflict: (setuptools 5.5.1 (/home/matt/bin/venvs/simpleitk/lib/python2.7/site-packages), Requirement.parse('setuptools>=28.0.0'))
    Complete output from command python setup.py egg_info:
    warning: no previously-included files matching '__pycache__' found under directory '*'

warning: no previously-included files matching '*.py[co]' found under directory '*'

Installed /tmp/pip-YbsxNL-build/scikit_build-0.6.0-py2.7.egg

Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/tmp/pip-YbsxNL-build/setup.py", line 50, in <module>

    zip_safe=False

  File "/usr/lib/python2.7/distutils/core.py", line 111, in setup

    _setup_distribution = dist = klass(attrs)

  File "/home/matt/bin/venvs/simpleitk/local/lib/python2.7/site-packages/setuptools/dist.py", line 262, in __init__

    self.fetch_build_eggs(attrs['setup_requires'])

  File "/home/matt/bin/venvs/simpleitk/local/lib/python2.7/site-packages/setuptools/dist.py", line 287, in fetch_build_eggs

    replace_conflicting=True,

  File "/home/matt/bin/venvs/simpleitk/local/lib/python2.7/site-packages/pkg_resources.py", line 631, in resolve

    dist = best[req.key] = env.best_match(req, ws, installer)

  File "/home/matt/bin/venvs/simpleitk/local/lib/python2.7/site-packages/pkg_resources.py", line 867, in best_match

    dist = working_set.find(req)

  File "/home/matt/bin/venvs/simpleitk/local/lib/python2.7/site-packages/pkg_resources.py", line 509, in find

    raise VersionConflict(dist, req)

pkg_resources.VersionConflict: (setuptools 5.5.1 (/home/matt/bin/venvs/simpleitk/lib/python2.7/site-packages), Requirement.parse('setuptools>=28.0.0'))

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-YbsxNL-build
Storing debug log for failure in /home/matt/.pip/pip.log

CC: @jcfr

jcfr commented 7 years ago

@thewtex Look like your system needs to be updated. setuptools 5.5.1 is from August 2014. See https://github.com/pypa/setuptools/releases/tag/5.5.1

jcfr commented 7 years ago

Based on the readme, setuptools >= 28.0.0 is needed.

thewtex commented 7 years ago

Ideally, the install command will identify that the setuptools version is too old and updates it.

If I upgrade it manually, I get:

[matt:~/bin] [simpleitk] 3s % pip install git+https://github.com/SimpleITK/SimpleITKPythonPackage.git
Downloading/unpacking git+https://github.com/SimpleITK/SimpleITKPythonPackage.git
  Cloning https://github.com/SimpleITK/SimpleITKPythonPackage.git to /tmp/pip-XstvvJ-build
  Running setup.py (path:/tmp/pip-XstvvJ-build/setup.py) egg_info for package from git+https://github.com/SimpleITK/SimpleITKPythonPackage.git
    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'

    Installed /tmp/pip-XstvvJ-build/.eggs/scikit_build-0.6.0-py2.7.egg
    Searching for wheel>=0.29.0
    Reading https://pypi.python.org/simple/wheel/
    Downloading https://pypi.python.org/packages/a7/37/947b4329c4a3c72093b6c8e9b4be8c7f10c32dbb78848d3a234ce01c059d/wheel-0.30.0a0.tar.gz#md5=aa1145d48e4da2f9415eac2d51468a83
    Best match: wheel 0.30.0a0
    Processing wheel-0.30.0a0.tar.gz
    Writing /tmp/easy_install-NrdHft/wheel-0.30.0a0/setup.cfg
    Running wheel-0.30.0a0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-NrdHft/wheel-0.30.0a0/egg-dist-tmp-KBktA9
    /home/matt/bin/venvs/simpleitk/local/lib/python2.7/site-packages/setuptools/dist.py:334: UserWarning: Normalizing '0.30.0.a0' to '0.30.0a0'
      normalized_version,
    no previously-included directories found matching 'wheel/test/*/dist'
    no previously-included directories found matching 'wheel/test/*/build'
    Extracting wheel-0.30.0a0-py2.7.egg to /tmp/pip-XstvvJ-build/.eggs

    Installed /tmp/pip-XstvvJ-build/.eggs/wheel-0.30.0a0-py2.7.egg
    package init file 'SimpleITK/__init__.py' not found (or not a regular file)
Installing collected packages: SimpleITK
  Running setup.py install for SimpleITK
    package init file 'SimpleITK/__init__.py' not found (or not a regular file)
    warning: install_lib: 'build/lib.linux-x86_64-2.7' does not exist -- no Python modules to install

  Could not find .egg-info directory in install record for SimpleITK==1.0.0 from git+https://github.com/SimpleITK/SimpleITKPythonPackage.git
Successfully installed SimpleITK
Cleaning up...
jcfr commented 7 years ago

Ideally, the install command will identify that the setuptools version is too old and updates it

Agreed. May be the check at the top of setup.py could be simplified into something like it was done in ITK.

https://github.com/InsightSoftwareConsortium/ITKPythonPackage/blob/5eb56235f1628acd44737e50b1ce1adb5d725e40/setup.py#L4-L11

recent setuptools being a dependency of scikit-build. That should do it.

jcfr commented 7 years ago

To summarize, I would recommend:

pip install cmake ninja scikit-build
pip install git+https://github.com/SimpleITK/SimpleITKPythonPackage.git -v
blowekamp commented 7 years ago

Do they have python source distributions available for ninja and or cmake? If there are no SimpleITK binaries for a configuration, should be expect there be ones for ninja and cmake?