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 04:52:44 +0000



Ernest Williams
Dept. Head, Advanced Control Systems
Advanced Instrumentation Research, Technology Innovation Directorate
SLAC National Laboratory, Stanford University



From: Michael Davidsaver <mdavidsaver@gmail.com>
Sent: Sunday, February 11, 2018 8:37 PM
To: Williams Jr., Ernest L.; EPICS Tech-Talk
Subject: Re: P4P release 1.0 (PVAccess for Python)
 
On 02/11/2018 05:47 PM, Williams Jr., Ernest L. wrote:
> Hi Michael,
>
>
> Awesome news.  Thanks for releasing this.
>
> My initial results are below.
>
> I look forward to continued tests

> $ make nose
> PYTHONPATH="/usr/local/controls/package/p4p-1.0/python3.6m/linux-x86_64" python -m nose -P p4p
...
> ImportError: /usr/local/controls/package/p4p-1.0/python3.6m/linux-x86_64/p4p/_p4p.so: undefined symbol: _Py_FalseStruct

Is a symptom of mixing python2 and python3.  If you build with

> make PYTHON=python3

Then you also need to to pass the same PYTHON= for all targets except 'distclean'.

> make PYTHON=python3 nose

>>>> ====================
That works perfectly, thanks.
>>>> ====================

which as you found, is a shorthand for:

> $ PYTHONPATH=/usr/local/controls/package/p4p-1.0/python3.6m/linux-x86_64 nosetests-3


I added a note to the 'building' section of the docs this afternoon as you're not the only one
seeing this.


Thanks for the test results.


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> *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
> <========================================================================>
>
> <https://mdavidsaver.github.io/p4p/building.html>===> 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/


References:
P4P release 1.0 (PVAccess for Python) Michael Davidsaver
Re: P4P release 1.0 (PVAccess for Python) Williams Jr., Ernest L.
Re: P4P release 1.0 (PVAccess for Python) Michael Davidsaver

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