ICE installation
Posted: Fri Jul 10, 2015 11:01 am
Hi,
I hope someone can help. I am trying to install Ice 3.5.1 with the python bindings so I can use CLI and also use python to access an Omero 5.1.2 I have running as Virtual Appliance. My operating system is Yosemite 10.10.3. I have tried several things. My first try was just to do pip install zeroc-ice. This worked perfectly but unfortunately its Ice-3.6 which is not compatible with omero. I feel like the community either needs to upgrade to Ice-3.6 or arrange for a version of Ice-3.5 to be available for use with pip or similar. My sys admin is looking into doing this for me in linux environment, but I need to be successful in mac os for my own sanity. I've attempted three different strategies and each one failed. I would be happy if only one of these worked.
I tried installing the Ice-3.5.1 os x binary, it seemed to work but it installed to the mac default python, which most people and myself don't use because it is old python (I use 2.7.10). There was no way to change the python directory with this installation method.
I then tried to install the macports zeroc-ice35 and the py27-zeroc-ice35. This seemed to work in that I could import Ice in python. However when I try and use any of the omero.gateway commands, I get the following:
>>> import Ice
>>> from omero.gateway import *
>>> BlitzGateway()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/dwaithe/Documents/OMERO.py-5.1.2-ice35-b45/lib/python/omero/gateway/__init__.py", line 1477, in __init__
self._resetOmeroClient()
File "/Users/dwaithe/Documents/OMERO.py-5.1.2-ice35-b45/lib/python/omero/gateway/__init__.py", line 1877, in _resetOmeroClient
args=['--Ice.Config='+','.join(self.ice_config)])
File "/Users/dwaithe/Documents/OMERO.py-5.1.2-ice35-b45/lib/python/omero/__init__.py", line 67, in client
return omero.clients.BaseClient(*args, **kwargs)
File "/Users/dwaithe/Documents/OMERO.py-5.1.2-ice35-b45/lib/python/omero/clients.py", line 140, in __init__
self._initData(id)
File "/Users/dwaithe/Documents/OMERO.py-5.1.2-ice35-b45/lib/python/omero/clients.py", line 260, in _initData
self.__ic = Ice.initialize(id)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Ice.py", line 647, in initialize
communicator = IcePy.Communicator(args, data)
Ice.PluginInitializationException: exception ::Ice::PluginInitializationException
{
reason = unable to load entry point `IceSSL:createIceSSL': dlopen(libIceSSL.35.dylib, 10): image not found; dlopen(libZerocIceSSL.35.dylib, 10): image not found; dlopen(libIceSSL.35.so, 10): image not found; dlopen(libIceSSL.35.bundle, 10): image not found
}
I also tried compiling in C the Ice 3.5.1 from source tar. I was unable to compile the c code:
After editing the Make.rules to find Ice-3.5.1-ThirdParty-OSX, I get the following error.
...nsactionHolder.o TransactionI.o Transaction.o Util.o -lIce -lIceUtil -L/Users/dwaithe/Downloads/Ice-3.5.1-ThirdParty-OSX/lib -ldb_cxx
ld: warning: directory not found for option '-L/Users/dwaithe/code/libomp_oss/exports/mac_32e/lib.thin'
Undefined symbols for architecture x86_64:
"Db::set_error_stream(std::__1::basic_ostream<char, std::__1::char_traits<char> >*)", referenced from:
vtable for Freeze::MapDb in MapDb.o
"Db::set_message_stream(std::__1::basic_ostream<char, std::__1::char_traits<char> >*)", referenced from:
vtable for Freeze::MapDb in MapDb.o
"Db::verify(char const*, char const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >*, unsigned int)", referenced from:
vtable for Freeze::MapDb in MapDb.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../../lib/libFreeze.3.5.1.dylib] Error 1
make[1]: *** [Freeze] Error 2
make: *** [all] Error 1
I hope someone can help. I am trying to install Ice 3.5.1 with the python bindings so I can use CLI and also use python to access an Omero 5.1.2 I have running as Virtual Appliance. My operating system is Yosemite 10.10.3. I have tried several things. My first try was just to do pip install zeroc-ice. This worked perfectly but unfortunately its Ice-3.6 which is not compatible with omero. I feel like the community either needs to upgrade to Ice-3.6 or arrange for a version of Ice-3.5 to be available for use with pip or similar. My sys admin is looking into doing this for me in linux environment, but I need to be successful in mac os for my own sanity. I've attempted three different strategies and each one failed. I would be happy if only one of these worked.
I tried installing the Ice-3.5.1 os x binary, it seemed to work but it installed to the mac default python, which most people and myself don't use because it is old python (I use 2.7.10). There was no way to change the python directory with this installation method.
I then tried to install the macports zeroc-ice35 and the py27-zeroc-ice35. This seemed to work in that I could import Ice in python. However when I try and use any of the omero.gateway commands, I get the following:
>>> import Ice
>>> from omero.gateway import *
>>> BlitzGateway()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/dwaithe/Documents/OMERO.py-5.1.2-ice35-b45/lib/python/omero/gateway/__init__.py", line 1477, in __init__
self._resetOmeroClient()
File "/Users/dwaithe/Documents/OMERO.py-5.1.2-ice35-b45/lib/python/omero/gateway/__init__.py", line 1877, in _resetOmeroClient
args=['--Ice.Config='+','.join(self.ice_config)])
File "/Users/dwaithe/Documents/OMERO.py-5.1.2-ice35-b45/lib/python/omero/__init__.py", line 67, in client
return omero.clients.BaseClient(*args, **kwargs)
File "/Users/dwaithe/Documents/OMERO.py-5.1.2-ice35-b45/lib/python/omero/clients.py", line 140, in __init__
self._initData(id)
File "/Users/dwaithe/Documents/OMERO.py-5.1.2-ice35-b45/lib/python/omero/clients.py", line 260, in _initData
self.__ic = Ice.initialize(id)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Ice.py", line 647, in initialize
communicator = IcePy.Communicator(args, data)
Ice.PluginInitializationException: exception ::Ice::PluginInitializationException
{
reason = unable to load entry point `IceSSL:createIceSSL': dlopen(libIceSSL.35.dylib, 10): image not found; dlopen(libZerocIceSSL.35.dylib, 10): image not found; dlopen(libIceSSL.35.so, 10): image not found; dlopen(libIceSSL.35.bundle, 10): image not found
}
I also tried compiling in C the Ice 3.5.1 from source tar. I was unable to compile the c code:
After editing the Make.rules to find Ice-3.5.1-ThirdParty-OSX, I get the following error.
...nsactionHolder.o TransactionI.o Transaction.o Util.o -lIce -lIceUtil -L/Users/dwaithe/Downloads/Ice-3.5.1-ThirdParty-OSX/lib -ldb_cxx
ld: warning: directory not found for option '-L/Users/dwaithe/code/libomp_oss/exports/mac_32e/lib.thin'
Undefined symbols for architecture x86_64:
"Db::set_error_stream(std::__1::basic_ostream<char, std::__1::char_traits<char> >*)", referenced from:
vtable for Freeze::MapDb in MapDb.o
"Db::set_message_stream(std::__1::basic_ostream<char, std::__1::char_traits<char> >*)", referenced from:
vtable for Freeze::MapDb in MapDb.o
"Db::verify(char const*, char const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >*, unsigned int)", referenced from:
vtable for Freeze::MapDb in MapDb.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../../lib/libFreeze.3.5.1.dylib] Error 1
make[1]: *** [Freeze] Error 2
make: *** [all] Error 1