Re: pyqtdeploy application on windows with math module

"1004483092" <[email protected]> Tue, 17 Mar 2020 11:26:00 +0800
Newsgroups gmane.comp.python.pyqt-pykde
Message-ID <[email protected]>
Hello Phil,
I tried many times with diffirent ways, when I enabled the math module in standard library, the application report no module named math.&nbsp;



when I add math module as extension module , the compiler kept reporting mathmodule.obj error LNK2019 , please tell me how to import math module , thank you!



------------------&nbsp;Original&nbsp;------------------
From:&nbsp;"Phil Thompson"<[email protected]&gt;;
Date:&nbsp;Mon, Mar 16, 2020 08:11 PM
To:&nbsp;"1004483092"<[email protected]&gt;;
Cc:&nbsp;"pyqt"<[email protected]&gt;;
Subject:&nbsp;Re: [PyQt] pyqtdeploy application on windows with math module



On 16/03/2020 10:41, 1004483092 wrote:
&gt; Hello Phil,
&gt; The math module build-in python use c modules , according to
&gt; Python-3.7.2\setup.py , the math module information as below:
&gt; shared_math = 'Modules/_math.o'
&gt; # complex math library functions
&gt; exts.append( Extension('cmath', ['cmathmodule.c'],
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; extra_objects=[shared_math],
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; depends=['_math.h', shared_math],
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; libraries=['m']) )
&gt; # math library functions, e.g. sin()
&gt; exts.append( Extension('math',&nbsp; ['mathmodule.c'],
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; extra_objects=[shared_math],
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; depends=['_math.h', shared_math],
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; libraries=['m']) )
&gt; 
&gt; 
&gt; Can you tell me how to import the math module on windows via
&gt; pyqtdeploy? thank you!

Enable the module in the pyqtdeploy GUI.

Phil


&gt; ------------------&amp;nbsp;Original&amp;nbsp;------------------
&gt; From:&amp;nbsp;"Phil Thompson"<[email protected]&amp;gt;;
&gt; Date:&amp;nbsp;Mon, Mar 16, 2020 03:55 PM
&gt; To:&amp;nbsp;"1004483092"<[email protected]&amp;gt;;
&gt; Cc:&amp;nbsp;"pyqt"<[email protected]&amp;gt;;
&gt; Subject:&amp;nbsp;Re: [PyQt] pyqtdeploy application on windows with math 
&gt; module
&gt; 
&gt; 
&gt; 
&gt; I have no idea what that DLL is. pyqtdeploy supports the standard 
&gt; Python
&gt; math module. If you do not have lots of experience building and
&gt; debugging C++ code on Windows then please use something else.
&gt; 
&gt; Phil
&gt; 
&gt; On 16/03/2020 03:37, 1004483092 wrote:
&gt; &amp;gt; Hello Phil,I build the demo on windows10 with VS2017 success 
&gt; according
&gt; &amp;gt; to the document , but when my python script include math module , 
&gt; the
&gt; &amp;gt; application can't import math module.The math module is
&gt; &amp;gt; api-ms-win-crt-math-l1-1-0.dll on windows , can you tell me how to
&gt; &amp;gt; import math module via pyqtdeploy?My scripyt as below:from
&gt; &amp;gt; PyQt5.QtCore import *
&gt; &amp;gt; from PyQt5.QtGui import *
&gt; &amp;gt; from PyQt5.QtWidgets import *
&gt; &amp;gt; import sys
&gt; &amp;gt; import mathclass Window(QWidget):
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; def __init__(self):
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super().__init__()
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.setupUI()
&gt; &amp;gt;
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; def setupUI(self):
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&gt; self.lb=QLabel(self)
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&gt; self.lb.setText('Label')
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&gt; self.lb.move(30,10)
&gt; &amp;gt;
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.btn =
&gt; QPushButton('test',self)
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&gt; self.btn.move(30,30)
&gt; &amp;gt;
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.cb = 
&gt; QComboBox(self)
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&gt; self.cb.move(30,70)
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&gt; self.cb.resize(200,30)
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.resize(30,80)
&gt; &amp;gt;
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&gt; self.btn.clicked.connect(self.test_func)
&gt; &amp;gt;
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&gt; self.setWindowTitle('test')
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&gt; self.setGeometry(400, 400, 300, 300)&amp;nbsp;&amp;nbsp;&amp;nbsp; def
&gt; test_func(self):
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test1 =
&gt; math.cos(30)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test2 =
&gt; math.asinh(60)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test3 =
&gt; &amp;gt; math.exp(40.1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test4 =
&gt; math.expm1(5.23)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test5 =
&gt; &amp;gt; math.factorial(40)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&gt; test6 = math.isfinite(3.24)
&gt; &amp;gt; self.cb.addItems([f'{test1}', f'{test2}', f'{test3}', f'{test4}',
&gt; &amp;gt; f'{test5}', f'{test6}'])if __name__=='__main__':
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; app = QApplication(sys.argv)
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window=Window()
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.show()
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit(app.exec_())
&gt; &amp;gt; _______________________________________________
&gt; &amp;gt; PyQt mailing list&amp;nbsp;&amp;nbsp;&amp;nbsp; [email protected]
&gt; &amp;gt; https://www.riverbankcomputing.com/mailman/listinfo/pyqt

_______________________________________________
PyQt mailing list    [email protected]
https://www.riverbankcomputing.com/mailman/listinfo/pyqt
[email protected] (image/jpeg, 15.4 KB) - not displayed
[email protected] (image/jpeg, 26.4 KB) - not displayed