EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Build pvaPy for Python 3
From: renato sanhueza <[email protected]>
To: Sinisa Veseli <[email protected]>, [email protected]
Date: Sat, 6 Jan 2018 21:18:56 -0500
When I execute the Python and Java servers the following is printed on the screen:

for Java: IGNORE_ADDR_LIST:
for Python: INTF_ADDR_LIST : 0.0.0.0

That is the only difference between the outputs.

On Sat, Jan 6, 2018 at 8:57 PM, renato sanhueza <[email protected]> wrote:
I can connect a Python client with a Java server, but not the other way around. For my test I only require Python as a client, but it would still be interesting to know why I can't connect to a Python RPC server.


On Sat, Jan 6, 2018 at 6:47 PM, renato sanhueza <[email protected]l> wrote:
While using Java I get this errror:

Acquisition of greeting was not successful, failed to connect: ChannelRPC never connected.

But it is easily solved by using the following command: sudo iptables --flush

Maybe it is related to the Python problem.

On Sat, Jan 6, 2018 at 6:37 PM, renato sanhueza <[email protected]l> wrote:
I set a bridged network and configure an static IP address for my Virtualbox VM. The message of multiples channel dissapeared, but the RPC timeout still persist.

Sending request for createNtTable:
structure
    int nRows 10
    int nColumns 10

Got response:
Traceback (most recent call last):
  File "testRpcClient.py", line 11, in <module>
    response = rpc.invoke(request)
pvaccess.PvaException: RPC timeout



On Sat, Jan 6, 2018 at 1:01 PM, Sinisa Veseli <[email protected]> wrote:
Hi

It looks like you are using NAT, and therefore incoming requests will not go through. If this is a virtual machine, try setting up bridged network interface, so that your machine gets its own IP address. 

Siniša


On Jan 6, 2018 11:23 AM, renato sanhueza <[email protected]l> wrote:
Dear Sinisa,

I could finally compile and import pvaccess in Python3. Running the testRpcClient.py and testRpcServer.py I get a RPC timeout:

Sending request for createNtTable:
structure
    int nRows 10
    int nColumns 10

Got response:
[ChannelAndRPCRequesterImpl] message(More than one channel with name 'createNtTable' detected, connected to: 10.0.2.15:59990, ignored: 10.0.2.15:5075, warning)
[ChannelAndRPCRequesterImpl] message(More than one channel with name 'createNtTable' detected, connected to: 10.0.2.15:59990, ignored: 192.168.122.1:5075, warning)
Traceback (most recent call last):
  File "testRpcClient.py", line 11, in <module>
    response = rpc.invoke(request)
pvaccess.PvaException: RPC timeout


Do you know why?


On Fri, Jan 5, 2018 at 4:50 PM, Siniša Veseli <[email protected]> wrote:

Here is what I use:

EPICS_BASE=$EPICS_BASE EPICS4_DIR=$EPICS4_DIR BOOST_ROOT=$BOOST_PYTHON3_DIR PYTHON_VERSION=3 make configure || exit 1
make || exit 1


On 1/5/18 3:40 PM, renato sanhueza wrote:
I built boost with python 3 but I think I didn't configure well the make. Now I am building pvaPy again after the following configuration:

make configure EPICS_BASE=/opt/epics/base EPICS4_DIR=/opt/epics/EPICS-CPP-4.6.0 BOOST_PYTHON_LIB=/home/renato/Downloads/boost_1_65_1  PYTHON_VERSION=3.6

I think it will work now.


On Fri, Jan 5, 2018 at 4:33 PM, Siniša Veseli <[email protected]> wrote:

Did you actually build boost with python3 support? You have below dependencies that include python 2.7, and it looks like you are using system boost python library, which is likely built with python 2.

In short, your entire stack must be built with python3, meaning that you need to build boost python with python 3, and then build pvaPy with that. If you look at my example build scripts, you will see how they use custom boost build. Your ldd output must not show any dependencies pointing to python 2 libraries.


On 1/5/18 3:19 PM, renato sanhueza wrote:
The output of $LD_LiBRARY_PATH is empty

The output of ldd pvacess.so is:

linux-vdso.so.1 =>  (0x00007ffd4a5b2000)
    libpython3.6m.so.1.0 => /lib64/libpython3.6m.so.1.0 (0x00007f92c83c2000)
    libpvaClient.so.4.2 => /opt/epics/EPICS-CPP-4.6.0/pvaClientCPP/lib/linux-x86_64/libpvaClient.so.4.2 (0x00007f92c8132000)
    libnt.so.5.1 => /opt/epics/EPICS-CPP-4.6.0/normativeTypesCPP/lib/linux-x86_64/libnt.so.5.1 (0x00007f92c7e92000)
    libpvDatabase.so.4.2 => /opt/epics/EPICS-CPP-4.6.0/pvDatabaseCPP/lib/linux-x86_64/libpvDatabase.so.4.2 (0x00007f92c7c3a000)
    libpvAccess.so.5.0.0 => /opt/epics/EPICS-CPP-4.6.0/pvAccessCPP/lib/linux-x86_64/libpvAccess.so.5.0.0 (0x00007f92c788a000)
    libpvData.so.6.0 => /opt/epics/EPICS-CPP-4.6.0/pvDataCPP/lib/linux-x86_64/libpvData.so.6.0 (0x00007f92c751a000)
    libCom.so.3.15.5 => /opt/epics/base-3.15.5/lib/linux-x86_64/libCom.so.3.15.5 (0x00007f92c72a2000)
    libboost_python.so.1.53.0 => /lib64/libboost_python.so.1.53.0 (0x00007f92c7052000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f92c6e32000)
    libreadline.so.6 => /lib64/libreadline.so.6 (0x00007f92c6bea000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f92c69e2000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f92c67da000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f92c64d2000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f92c61ca000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f92c5fb2000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f92c5bea000)
    libutil.so.1 => /lib64/libutil.so.1 (0x00007f92c59e2000)
    libdbRecStd.so.3.15.5 => /opt/epics/base-3.15.5/lib/linux-x86_64/libdbRecStd.so.3.15.5 (0x00007f92c579a000)
    libdbCore.so.3.15.5 => /opt/epics/base-3.15.5/lib/linux-x86_64/libdbCore.so.3.15.5 (0x00007f92c5512000)
    libca.so.3.15.5 => /opt/epics/base-3.15.5/lib/linux-x86_64/libca.so.3.15.5 (0x00007f92c52a2000)
    libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007f92c4ed2000)
    /lib64/ld-linux-x86-64.so.2 (0x000055ab0aa74000)
    libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f92c4ca2000)


On Fri, Jan 5, 2018 at 4:09 PM, Siniša Veseli <[email protected]> wrote:

Hi,

Could you send me the output of "echo $LD_LIBRARY_PATH" before you run python, and also the output of "ldd pvaccess.so"? The so library will be under the version-specific python library directory.

Sinisa


On 1/5/18 2:56 PM, renato sanhueza wrote:
hi,

after compiling pvaPy when I import it in a python program I got the following error. I tried to fixed, but I couldn't:

ImportError: pvaccess.so: undefined symbol: _ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE

On Fri, Jan 5, 2018 at 11:39 AM, Siniša Veseli <[email protected]> wrote:

Just forwarded you email that contains link to v7 download.


On 1/5/18 10:36 AM, renato sanhueza wrote:
Only EPICS7 Java version is available in sourceforge: https://sourceforge.net/projects/epics-pvdata/files/ Should I download the C++ version from github?

On Fri, Jan 5, 2018 at 11:16 AM, Siniša Veseli <[email protected]> wrote:

Using EPICS7 release should result in a better performance, but since it just came out last month, you might see some issues that have not been caught/fixed yet. In either case, pvaPy maintains backwards compatibility, so if you develop your python application with 4.6.0 v4 release, and later decide to go with epics7, you should not have to change your python code.

Sinisa


On 1/5/18 9:03 AM, renato sanhueza wrote:
I am currently using the EPICS 4.6.0 tar.gz because I thought that EPCIS 7.0 is not stable yet. Am I right?. I will try your solutions now. Thanks!

On Fri, Jan 5, 2018 at 12:02 PM, renato sanhueza <[email protected]l> wrote:
I am currently using the EPICS 4.6.0 tar.gz because I thought that EPCIS 7.0 is not stable yet. Am I right?. I will try your solutions now. Thanks!

On Fri, Jan 5, 2018 at 10:30 AM, Siniša Veseli <[email protected]> wrote:

Hi,

In the tools/build directory there are example scripts for building pvapy, boost, etc. There you will find example scripts for python 3 as well. Basically, if you want to build using automated configuration, you need to use PYTHON_VERSION=3 on the "make configure" line (as outlined in the README.md file).

If you have any issues, let me know.

Sinisa


On 1/5/18 2:03 AM, Ralph Lange wrote:
Hi Renato,

Did you see the recently released 1.0.0 version of pvaPy that includes build support for Python3?

Cheers,
~Ralph



On Fri, Jan 5, 2018 at 5:48 AM, renato sanhueza <[email protected]l> wrote:
Hi,

I was able to build pvaPy and use it in some examples successfully. The problem is that I also need to use some Python 3 modules. How can I build pvaPy for Python 3.6?

Best regards,
Renato

--
Renato Sanhueza Ulsen
Ing Civil Informática.


-- 
Siniša Veseli
Scientific Software Engineering & Data Management
Advanced Photon Source
Argonne National Laboratory
[email protected]
(630)252-9182 



--
Renato Sanhueza Ulsen
Ing Civil Informática.



--
Renato Sanhueza Ulsen
Ing Civil Informática.

-- 
Siniša Veseli
Scientific Software Engineering & Data Management
Advanced Photon Source
Argonne National Laboratory
[email protected]
(630)252-9182 



--
Renato Sanhueza Ulsen
Ing Civil Informática.

-- 
Siniša Veseli
Scientific Software Engineering & Data Management
Advanced Photon Source
Argonne National Laboratory
[email protected]
(630)252-9182 



--
Renato Sanhueza Ulsen
Ing Civil Informática.

-- 
Siniša Veseli
Scientific Software Engineering & Data Management
Advanced Photon Source
Argonne National Laboratory
[email protected]
(630)252-9182 



--
Renato Sanhueza Ulsen
Ing Civil Informática.

-- 
Siniša Veseli
Scientific Software Engineering & Data Management
Advanced Photon Source
Argonne National Laboratory
[email protected]
(630)252-9182 



--
Renato Sanhueza Ulsen
Ing Civil Informática.

-- 
Siniša Veseli
Scientific Software Engineering & Data Management
Advanced Photon Source
Argonne National Laboratory
[email protected]
(630)252-9182 



--
Renato Sanhueza Ulsen
Ing Civil Informática.




--
Renato Sanhueza Ulsen
Ing Civil Informática.



--
Renato Sanhueza Ulsen
Ing Civil Informática.



--
Renato Sanhueza Ulsen
Ing Civil Informática.



--
Renato Sanhueza Ulsen
Ing Civil Informática.

References:
Re: Build pvaPy for Python 3 renato sanhueza

Navigate by Date:
Prev: Re: Build pvaPy for Python 3 renato sanhueza
Next: Telling gcc the location of EPICS renato sanhueza
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Build pvaPy for Python 3 renato sanhueza
Next: VisualDCT 2.7.0 released (for Base 3.16 and EPICS 7) Ralph Lange
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
ANJ, 07 Jan 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·