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 Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel