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  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 
<== Date ==> <== Thread ==>

Subject: Re: P4P release 1.0 (PVAccess for Python)
From: "Williams Jr., Ernest L." <ernesto@slac.stanford.edu>
To: Michael Davidsaver <mdavidsaver@gmail.com>, EPICS Tech-Talk <tech-talk@aps.anl.gov>
Date: Mon, 12 Feb 2018 01:47:36 +0000

Hi Michael,


Awesome news.  Thanks for releasing this.

My initial results are below.

I look forward to continued tests






From: tech-talk-bounces@aps.anl.gov <tech-talk-bounces@aps.anl.gov> on behalf of Michael Davidsaver <mdavidsaver@gmail.com>
Sent: Sunday, February 11, 2018 2:59 PM
To: EPICS Tech-Talk
Subject: P4P release 1.0 (PVAccess for Python)
 
The first release of the P4P (PVAccess for Python) module is available

P4P is a binding for the PVAccess protocol client, and part of the server APIs.
The client get, put, rpc, and monitor operations are supported.  As a server,
only the rpc operation can be implemented.

Download

https://github.com/mdavidsaver/p4p/releases/download/1.0/p4p-1.0.tar.gz


Building from source

https://mdavidsaver.github.io/p4p/building.html


<============ Building ================>==================================>
The build was successful.
Host OS == Fedora release 27 (Twenty Seven)
Kernel == 4.14.16-300.fc27.x86_64
GCC == gcc version 7.3.1 20180130 (Red Hat 7.3.1-2) (GCC)
EPICS_BASE = R7.0.1.1
PYTHON = Python 3.6.4
numpy =  numpy==1.14.0
<========================================================================>

===> Running unittests =======================================================<
Some results when building from source on Fedora 26:
make nose does not succeed: (maybe because I am using python3?)

[ernesto@localhost p4p-1.0]$ make nose
make -C ./configure install  
make[1]: Entering directory '/usr/local/controls/package/p4p-1.0/configure'
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
   T_A=linux-x86_64 install
make[2]: Entering directory '/usr/local/controls/package/p4p-1.0/configure/O.linux-x86_64'
make[2]: Nothing to be done for 'install'.
make[2]: Leaving directory '/usr/local/controls/package/p4p-1.0/configure/O.linux-x86_64'
make[1]: Leaving directory '/usr/local/controls/package/p4p-1.0/configure'
make -C ./src install  
make[1]: Entering directory '/usr/local/controls/package/p4p-1.0/src'
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
   T_A=linux-x86_64 install
make[2]: Entering directory '/usr/local/controls/package/p4p-1.0/src/O.linux-x86_64'
make[2]: Nothing to be done for 'install'.
make[2]: Leaving directory '/usr/local/controls/package/p4p-1.0/src/O.linux-x86_64'
make[1]: Leaving directory '/usr/local/controls/package/p4p-1.0/src'
make -C src/O.linux-x86_64 nose
make[1]: Entering directory '/usr/local/controls/package/p4p-1.0/src/O.linux-x86_64'
make -f ../Makefile TOP=../.. T_A=linux-x86_64  nose
make[2]: Entering directory '/usr/local/controls/package/p4p-1.0/src/O.linux-x86_64'
PYTHONPATH="/usr/local/controls/package/p4p-1.0/python3.6m/linux-x86_64" python -m nose -P p4p
E
======================================================================
ERROR: Failure: ImportError (/usr/local/controls/package/p4p-1.0/python3.6m/linux-x86_64/p4p/_p4p.so: undefined symbol: _Py_FalseStruct
)
----------------------------------------------------------------------
Traceback (most recent call last):
 File "/usr/lib/python2.7/site-packages/nose/loader.py", line 407, in loadTestsFromName
   module = resolve_name(addr.module)
 File "/usr/lib/python2.7/site-packages/nose/util.py", line 312, in resolve_name
   module = __import__('.'.join(parts_copy))
 File "/usr/local/controls/package/p4p-1.0/python3.6m/linux-x86_64/p4p/__init__.py", line 2, in <module>
   from .wrapper import Value, Type
 File "/usr/local/controls/package/p4p-1.0/python3.6m/linux-x86_64/p4p/wrapper.py", line 2, in <module>
   from ._p4p import Type, Value
ImportError: /usr/local/controls/package/p4p-1.0/python3.6m/linux-x86_64/p4p/_p4p.so: undefined symbol: _Py_FalseStruct

----------------------------------------------------------------------
Ran 1 test in 0.001s

FAILED (errors=1)
make[2]: *** [../Makefile:55: nose] Error 1
make[2]: Leaving directory '/usr/local/controls/package/p4p-1.0/src/O.linux-x86_64'
make[1]: *** [Makefile:8: nose] Error 2
make[1]: Leaving directory '/usr/local/controls/package/p4p-1.0/src/O.linux-x86_64'
make: *** [Makefile:17: nose] Error 2
[ernesto@localhost p4p-1.0]$


However, the other recommended option does run and complete with success

[ernesto@localhost linux-x86_64]$ cd /usr/local/controls/package/p4p-1.0/python3.6m/linux-x86_64
[ernesto@localhost linux-x86_64]$ PYTHONPATH=/usr/local/controls/package/p4p-1.0/python3.6m/linux-x86_64 nosetests-3
..........................2018-02-11T17:34:47.253 Using dynamically assigned TCP port 35359.
.2018-02-11T17:34:47.284 Using dynamically assigned TCP port 36373.
.....2018-02-11T17:34:47.402 Using dynamically assigned TCP port 48073.
.........................
----------------------------------------------------------------------
Ran 57 tests in 1.084s

OK
[ernesto@localhost linux-x86_64]$


Initial tests with command line tools look good as well:
[ernesto@localhost linux-x86_64]$ PYTHONPATH=/usr/local/controls/package/p4p-1.0/python3.6m/linux-x86_64 python3 -m p4p.client.cli get
ernesto:aiExample1
ernesto:aiExample1 Sun Feb 11 17:36:51 2018 9.0
[ernesto@localhost linux-x86_64]$ PYTHONPATH=/usr/local/controls/package/p4p-1.0/python3.6m/linux-x86_64 python3 -m p4p.client.cli moni
tor ernesto:aiExample1
ernesto:aiExample1 Sun Feb 11 17:37:09 2018 7.0
ernesto:aiExample1 Sun Feb 11 17:37:10 2018 8.0
ernesto:aiExample1 Sun Feb 11 17:37:11 2018 9.0
ernesto:aiExample1 Sun Feb 11 17:37:12 2018 0.0
ernesto:aiExample1 Sun Feb 11 17:37:13 2018 1.0
ernesto:aiExample1 Sun Feb 11 17:37:14 2018 2.0
ernesto:aiExample1 Sun Feb 11 17:37:15 2018 3.0
ernesto:aiExample1 Sun Feb 11 17:37:16 2018 4.0
ernesto:aiExample1 Sun Feb 11 17:37:17 2018 5.0
ernesto:aiExample1 Sun Feb 11 17:37:18 2018 6.0
ernesto:aiExample1 Sun Feb 11 17:37:19 2018 7.0
^C[ernesto@localhost linux-x86_64]$

<======================================================================================>



Getting started with the client API

https://mdavidsaver.github.io/p4p/starting.html


Writing an RPC server (and client)

https://mdavidsaver.github.io/p4p/rpc.html


documentation index

https://mdavidsaver.github.io/p4p/

Replies:
Re: P4P release 1.0 (PVAccess for Python) Michael Davidsaver
References:
P4P release 1.0 (PVAccess for Python) Michael Davidsaver

Navigate by Date:
Prev: P4P release 1.0 (PVAccess for Python) Michael Davidsaver
Next: Re: P4P release 1.0 (PVAccess for Python) Michael Davidsaver
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 
Navigate by Thread:
Prev: P4P release 1.0 (PVAccess for Python) Michael Davidsaver
Next: Re: P4P release 1.0 (PVAccess for Python) Michael Davidsaver
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 
ANJ, 11 Feb 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·