Hey all, I'm a relative newcomer to both Linux, Python, and Epics, so
sorry if this has an easy solution. I guess I'm not even sure if it's
a problem with Epics itself, or Python, or something else. I'm having
some problems getting Python to import the EpicsCA module. I'm
running Ubuntu 8.04 (Hardy), and it's an x86_64 system. The epics
base seems to have installed fine, I put it in
/usr/local/lib/epics/base. I got the epics module here
<http://cars9.uchicago.edu/%7Enewville/Epics/Python/>
(http://cars9.uchicago.edu/~newville/Epics/Python/
<http://cars9.uchicago.edu/%7Enewville/Epics/Python/>), and again it
looked like it installed fine to /usr/local/EpicsCA-2.1.5.
The problem is, whenever I try to do anything with EpicsCA in Python,
it dies on me because it can't find libca.so. Here's what it shows
when I try to import EpicsCA:
>>> import EpicsCA
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/site-packages/EpicsCA/__init__.py", line
116, in <module>
import _epics
ImportError: libca.so: cannot open shared object file: No such file or
directory
(it does the same if I try "from EpicsCA import *")
However, I know libca.so exists, it's here:
adam:$ locate libca.so
/usr/local/lib/epics/base/lib/linux-x86_64/libca.so
/usr/local/lib/epics/base/lib/linux-x86_64/libca.so.3.14
/usr/local/lib/epics/base/src/ca/O.linux-x86_64/libca.so.3.14
So there it is, in the epics base folder. Why can't Python find it?
I was digging around online, and found how to add places for Python
looks for modules to import them (though I don't think that's the
problem, because it can't find libca.so, not a module), and I added a
bunch of places, to no avail. Anyone have any ideas?
Not sure if it's relevant, but when I ran the setup.py script to
install EpicsCA, I had to edit the environment variable manually. I
added "EPICS_BASE=/usr/local/lib/epics/base" to /etc/environment, but
for some reason os.environ['EPICS_BASE'] wasn't finding
/usr/local/lib/epics/base. I had to change the setup script to look
there. Though if I opened a Python interpreter and printed
os.environ['EPICS_BASE'], it came out as /usr/local/lib/epics/base.
So something fishy was going on there, not sure if it's related though.
Thanks,
Adam Kadzban