1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 <2018> 2019 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 <2018> 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: P4P release 1.0 (PVAccess for Python) |
From: | "Williams Jr., Ernest L." <[email protected]> |
To: | Michael Davidsaver <[email protected]>, EPICS Tech-Talk <[email protected]> |
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 <[email protected]>
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:* [email protected] <[email protected]> on behalf of Michael Davidsaver <[email protected]> > *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/ |