sightmachine / SimpleCV

The Open Source Framework for Machine Vision
http://simplecv.org
BSD 3-Clause "New" or "Revised" License
2.68k stars 799 forks source link

Switch to Pillow #468

Open techtonik opened 11 years ago

techtonik commented 11 years ago

Pillow is PIL on steroids with such tasty features are PyPy and Python3 support, +test suite, +bugfixes.

https://pypi.python.org/pypi/Pillow/2.0.0

xamox commented 11 years ago

Indeed, I basically have already used Pillow for webp support in SimpleCV. Although this should change, I'm working on porting installation scripts to use ansible vs. bash scripts & pip. When I move to ansible I will probably make pillow the default.

techtonik commented 11 years ago

Are you sure about that? From here it looks like you need a build system like SCons. Not the node configuration management system like ansible, Salt, bcfg2, Chef or Puppet.

I thought the goal of SimpleCV is to provide a binary package - not an installation script that requires a lot of developer libraries and compiles anything on user machine.

xamox commented 11 years ago

Not sure as I haven't had much experience with SCons. I thought SCons basically rolled up things like autotools, cmake, etc.

Essentially I want to use ansible because it can use the various methods for installation like apt-get, pip, etc. Since SimpleCV is just python it really doesn't have to be built, but many of the dependencies it uses does. When it comes to building things like the .deb packages those are just essentially .zip files with scripts inside and can install other .deb dependencies.

I haven't essentially found a one shot, one kill solution for getting things deployed. The installers could use some love, ubuntu is pretty straight forward as I use stdeb (https://github.com/astraw/stdeb). Windows is a bit more pain in the ass, and I don't even touch Mac systems. One downside I've experienced to using PIP in that it can't install python EGG's and some of the windows packages want EGGs for some reason.

I'm open to any solutions other people may have, nothing is really set in stone.

techtonik commented 11 years ago

SCons replaces all other build tools including Make, Autotools, CMake etc. and its major advantage that it is also in Python.

I suggest to start with a user story. If you need to checkout SimpleCV sources and start playing with it - then I'd use bootstrap script to fetch and setup environment. I started to gather my best practices into https://bitbucket.org/techtonik/locally/ This way you won't have to build anything, but you need binary packages to be available for your system and know the names of them to instruct users how to make them installed.

For an attempt to solve one shot problem for SimpleCV I'd try Wheel package format - http://www.python.org/dev/peps/pep-0427/ - if everything is right, it should be possible to build binary packages in this format and on the user machine just download and gather them into a single virtualenv. It is just an idea though - I haven't tried it.

zhou13 commented 11 years ago

After switch to Pillow, will SimpleCV support python3.x?

xamox commented 11 years ago

Possibly, I know the reason we didn't before is that scipy and numpy were supported on python 3, I think they are now but need to confirm. I'm guessing that openCV's python interface also won't work but the cv2 interface probably will and @jayrambbia has been working hard at port us over completely to cv2 to. So no guarantee but we will try to make sure that it is.

firemanxbr commented 11 years ago

I am Fedora Packager and wish a portable the SimpleCV for Fedora with a RPM, easy installation for all users, example:

yum install python-simplecv

But for this it i necessary change a one library required, "PIL" to "Pillow". Please see(Fedora 19 release):

Package - Version

I belive what license of PIL is not permissive for Fedora Project, for this i have requested a change in requirement, is possible ?

PS: Optional library's: Package - Version

With this work SimpleCV for Fedora and RHEL and CentOs and more distribuitions based RPM

With this work, we shall take users of RPM-based Linux distributions like Fedora, Red Hat Enterprise Linux, CentOS, Oracle Linux, Suse, and another, leading to all SimpleCV great project easily.