On 11/27/2016 02:51 AM, Alan W. Irwin wrote:
>
> P.S. This further comment assumes that generating a python3 binding
> is fairly trivial, i.e., nothing much more than using the -py3 option
> to swig. If your experiments confirm that assumption holds, then I
> suggest you should define a CMake option called PLPLOT_USE_PYTHON3. If
> the user sets that to ON, the build system generates and uses a
> python3 binding (using, e.g., that -py3 option to swig), and if OFF it
> generates and uses a python2 binding (which we will likely want to
> support indefinitely in any case). With that either/or organization
> between the two cases, the names of the modules we build will be
> identical in the two cases, and the examples should just work
> regardless of whether the binding is python2 or python3 (assuming you
> can convert the syntax of the examples so that they work both with
> python-2.7 and python-3.0).
The bindings that swig generates are compatible with Python3 as well as
Python2 without the -py3 flag, so unless it turns out that we absolutely
need it I'm not going to use it. I also have no plans to add a special
PLPLOT_USE_PYTHON3 option. I'm reasonable confident we can be agnostic
here and it will not matter if the Python bindings are built in a
Python2 environment and run in a Python3 environment or vice-versa.
I would appreciate thoughts on:
(1) In Python2 imp.find_module('_plplotc', ..) will find the shared
library _plplotcmodule.so, but this fails in Python3. I'm not sure why
we chose to have a file name that was different from the module name,
but swig is not generating the right calls for imp.find_module() and
imp.load_module() to work with this convention in Python3. For the time
being I have just been editing the generated plplotc.py file by hand to
fix this. However, unless there is some reason why the C library needs
to be named _plplotcmodule.so I would like to change its name to
_plplotc.so, or alternatively change the module name to _plplotcmodule.
It looks like we are already doing this on windows, the C library is
called _plplotc.pyd and not _plplotcmodule.pyd.
(2) What is the command line to run a python example in the build tree
outside of ctest? Some of the examples are failing and debugging would
be a lot easier if I could run them by hand. Among other annoyances,
ctest eats any print() output breaking my preferred approach to debugging.
-Hazen
------------------------------------------------------------------------------
_______________________________________________
Plplot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/plplot-devel