Review Request 120567: Porting Cantor Python2 backend to Python3
Minh Ngo
nlminhtl at gmail.com
Tue Nov 4 07:58:58 UTC 2014
> On Oct. 19, 2014, 8:29 p.m., Filipe Saraiva wrote:
> > Hello Minh Ngo, first thanks for your contribution and sorry for the delay.
> >
> > I think your contribution is a good way to provide Python 3 support. I would like to provide Python 2 and Python 3 supports together, and you contribution provide it. Then, thank you and congratulation for this.
> >
> > But I would like to merge your contribution only after the Qt5/KF5 port of Cantor, because that is the high priority for now.
> >
> > On your contribution, I would like to give these feedbacks:
> >
> > **1 - FindPython3.cmake**
> >
> > I can not to find/compile Python 3 backend with your FindPython3.cmake. I need to provide a hardcoded ```SET (PYTHON3_INCLUDE_DIR /usr/include/python3.4m)``` in line 3 of FindPython3.cmake to compile it. Maybe could you to provide some generic way to do it? See for example [FindLuaJIT.cmake](https://projects.kde.org/projects/kde/kdeedu/cantor/repository/revisions/master/entry/cmake/FindLuaJIT.cmake).
> >
> > **2 - Error when import modules**
> >
> > I am using Mageia Cauldron x86_64, and unfortunatelly I can not to import modules in Python 3 backend - but I can to do it in Python 3 terminal without problem.
> >
> > For example, I get the error below when I run *import numpy* in Cantor + Python 3:
> >
> > ```Traceback (most recent call last):
> > File "", line 1, in
> > File "/usr/lib64/python3.4/site-packages/numpy/__init__.py", line 153, in
> > from . import add_newdocs
> > File "/usr/lib64/python3.4/site-packages/numpy/add_newdocs.py", line 13, in
> > from numpy.lib import add_newdoc
> > File "/usr/lib64/python3.4/site-packages/numpy/lib/__init__.py", line 8, in
> > from .type_check import *
> > File "/usr/lib64/python3.4/site-packages/numpy/lib/type_check.py", line 11, in
> > import numpy.core.numeric as _nx
> > File "/usr/lib64/python3.4/site-packages/numpy/core/__init__.py", line 6, in
> > from . import multiarray
> > ImportError: /usr/lib64/python3.4/site-packages/numpy/core/multiarray.cpython-34m.so: undefined symbol: PyExc_SystemError
> > ```
> >
> > Do you have some idea about it? Which your OS and Python 3 version?
> >
> >
> > Let's keep the work to merge it in the future!
> > Best regard;
>
> Minh Ngo wrote:
> Hi Filipe,
>
> Hm, probably, the second error is a consequence of the first. I will fix it ASAP.
>
> Best regards,
>
> Minh
Hi Filipe,
A problem is that for KDE applications the command cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .. is usually used for configuring instead of cmake $KDE_SRC -DCMAKE_INSTALL_PREFIX=$KDEDIR, that is from the README file of the cantor project.
As a result, in the first case the variable ${INCLUDE_INSTALL_DIR} is equal to /usr/include/kde4, in the second (I have tried on my PC) is /include. Therefore, when you run the second command, my script cannot find anything.
But yes, I think it will better if you, as a project owner, will make a decision about that :).
Best regards,
Minh
- Minh
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/120567/#review68722
-----------------------------------------------------------
On Oct. 12, 2014, 8:54 p.m., Minh Ngo wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/120567/
> -----------------------------------------------------------
>
> (Updated Oct. 12, 2014, 8:54 p.m.)
>
>
> Review request for KDE Edu, Alexander Rieder and Filipe Saraiva.
>
>
> Repository: cantor
>
>
> Description
> -------
>
> Hi,
>
> I have ported Python2 backend to Python3.
>
> There is some bug in the default cmake script for finding PythonLibs script so it cannot find PythonLibs3 now http://www.cmake.org/Bug/print_bug_page.php?bug_id=13794, therefore I decided to write my own script (FindPythonLibs3.cmake).
>
> Headers moving were made to make it compilible. See more: http://stackoverflow.com/questions/20300201/why-python-h-of-python-3-2-must-be-included-as-first-together-with-qt4
>
> Regards,
>
> Minh
>
>
> Diffs
> -----
>
> src/backends/python3/CMakeLists.txt PRE-CREATION
> src/backends/python3/python3backend.desktop PRE-CREATION
> src/backends/CMakeLists.txt 687e5d6
> src/backends/python2/python2backend.cpp 2b724f1
> src/backends/python2/python2backend.kcfg 22564c1
> src/backends/python2/python2completionobject.cpp 08c00c3
> src/backends/python2/python2expression.cpp 32a7380
> src/backends/python2/python2session.h bb6650d
> src/backends/python2/python2session.cpp 513f6ec
> src/backends/python2/python2utils.h PRE-CREATION
> src/backends/python3/python3backend.kcfg PRE-CREATION
>
> Diff: https://git.reviewboard.kde.org/r/120567/diff/
>
>
> Testing
> -------
>
> Looks like it works :)
>
> Have done some simple things like that:
> import numpy as np
> a = np.array([1, 2, 3])
> print(a)
>
>
> Thanks,
>
> Minh Ngo
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-edu/attachments/20141104/9f5e7772/attachment-0001.html>
More information about the kde-edu
mailing list