On 6/17/19 10:05 AM, Florian Feldbauer wrote:
Hey Kay and David,
during the EPICS7 training at the collaboration meeting, we were using a PVA client written in python.
This client imports the module "pvaccess".
For a small project I wanted to write my own PVA client in python, but I cannot find this library.
Using `pip search pvaccess` I found a module called p4p (maintained by David?) instead.
Googeling I found also pvapy which I could not install via pip.
P4P is my own python binding for PVA. I have been, and will continue,
to support and recommend it. It one of the tools I use when developing and
testing PVA itself, and gets a fair amount of exercise for this alone.
Are there any recommendations which module to use?
1. I provide instructive as well as reference documentation https://mdavidsaver.github.io/p4p/
2. P4P tries to conform to python conventions (eg. use of logging, unittests, exception handling, ...)
3. P4P support three concurrency primitives: OS threads, asyncio (py >=3.4 only), and DLS cothreads.
4. I support building P4P as an EPICS module (cf. configure/RELEASE) and as a python package (cf. setup.py)
5. I publish both binary and source to pypi.org.
https://pypi.org/project/p4p/#files
Binaries are currently provided for Linux, Mac, and Windows for python 2.7, 3.4, 3.5, and 3.6.
As a source build is provided, it will be used when no pre-built binaries match (just takes longer).
6. When built as a python package, P4P uses the 'epicscorelibs' python package. This is
EPICS Base built from source with a setup.py!
In case it matters: My environment is Debian Stretch with Base 7.0.2.2.
More relevant is while python version, and how you install it (eg. debian package vs. conda vs. ???).