回复: pyqtdeploy application on windows with math module

"1004483092" <[email protected]> Tue, 17 Mar 2020 18:25:34 +0800
Newsgroups gmane.comp.python.pyqt-pykde
Message-ID <[email protected]>
I think it has no matter with debug C++ code kills , according to the manual , I had compiled pyqt script success with pyqtdeploy v2.4.


But I find it have problems when I import standard python module math or random , why the standrad python library can't be found , it has been checked in pyqtdeploy GUI as you said , where's the problem ?


I have a friend who has many years of experience in C + + development and created a pyqt forum, 
I asked for help about the problem in his forum for a long time but no one knows the right way , he told me not to waste time on this tool.
He compiled his project success with pyqtdeploy 1.3 before , but he don't want to use pyqtdeploy anymore , it takes too much time to learn pyqtdeploy but the efficiency don't&nbsp; improved too much, and v2.x changed a lot .


In other hand there are few successful cases running in windows with pyqtdeploy v1.x but no one in pyqtdeply 2.x , as the manual are not detailed enough.




------------------ 原始邮件 ------------------
发件人:&nbsp;"Phil Thompson"<[email protected]&gt;;
发送时间:&nbsp;2020年3月17日(星期二) 下午3:18
收件人:&nbsp;"1004483092"<[email protected]&gt;;

主题:&nbsp;Re: [PyQt] pyqtdeploy application on windows with math module



As I said, if you don’t have the skills to build and debug C++ code then 
don’t use pyqtdeploy.

On 17/03/2020 03:26, 1004483092 wrote:
&gt; Hello Phil,
&gt; I tried many times with diffirent ways, when I enabled the math module
&gt; in standard library, the application report no module named
&gt; math.&amp;nbsp;
&gt; 
&gt; 
&gt; 
&gt; when I add math module as extension module , the compiler kept
&gt; reporting mathmodule.obj error LNK2019 , please tell me how to import
&gt; math module , thank you!
&gt; 
&gt; 
&gt; 
&gt; ------------------&amp;nbsp;Original&amp;nbsp;------------------
&gt; From:&amp;nbsp;"Phil Thompson"<[email protected]&amp;gt;;
&gt; Date:&amp;nbsp;Mon, Mar 16, 2020 08:11 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; On 16/03/2020 10:41, 1004483092 wrote:
&gt; &amp;gt; Hello Phil,
&gt; &amp;gt; The math module build-in python use c modules , according to
&gt; &amp;gt; Python-3.7.2\setup.py , the math module information as below:
&gt; &amp;gt; shared_math = 'Modules/_math.o'
&gt; &amp;gt; # complex math library functions
&gt; &amp;gt; exts.append( Extension('cmath', ['cmathmodule.c'],
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&gt; extra_objects=[shared_math],
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&gt; depends=['_math.h', shared_math],
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&gt; libraries=['m']) )
&gt; &amp;gt; # math library functions, e.g. sin()
&gt; &amp;gt; exts.append( Extension('math',&amp;nbsp; ['mathmodule.c'],
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&gt; extra_objects=[shared_math],
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&gt; depends=['_math.h', shared_math],
&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&gt; libraries=['m']) )
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt; Can you tell me how to import the math module on windows via
&gt; &amp;gt; pyqtdeploy? thank you!
&gt; 
&gt; Enable the module in the pyqtdeploy GUI.
&gt; 
&gt; Phil
&gt; 
&gt; 
&gt; &amp;gt; ------------------&amp;amp;nbsp;Original&amp;amp;nbsp;------------------
&gt; &amp;gt; From:&amp;amp;nbsp;"Phil 
&gt; Thompson"<[email protected]&amp;amp;gt;;
&gt; &amp;gt; Date:&amp;amp;nbsp;Mon, Mar 16, 2020 03:55 PM
&gt; &amp;gt; To:&amp;amp;nbsp;"1004483092"<[email protected]&amp;amp;gt;;
&gt; &amp;gt; Cc:&amp;amp;nbsp;"pyqt"<[email protected]&amp;amp;gt;;
&gt; &amp;gt; Subject:&amp;amp;nbsp;Re: [PyQt] pyqtdeploy application on windows 
&gt; with math
&gt; &amp;gt; module
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt; I have no idea what that DLL is. pyqtdeploy supports the standard
&gt; &amp;gt; Python
&gt; &amp;gt; math module. If you do not have lots of experience building and
&gt; &amp;gt; debugging C++ code on Windows then please use something else.
&gt; &amp;gt;
&gt; &amp;gt; Phil
&gt; &amp;gt;
&gt; &amp;gt; On 16/03/2020 03:37, 1004483092 wrote:
&gt; &amp;gt; &amp;amp;gt; Hello Phil,I build the demo on windows10 with VS2017 
&gt; success
&gt; &amp;gt; according
&gt; &amp;gt; &amp;amp;gt; to the document , but when my python script include math 
&gt; module ,
&gt; &amp;gt; the
&gt; &amp;gt; &amp;amp;gt; application can't import math module.The math module is
&gt; &amp;gt; &amp;amp;gt; api-ms-win-crt-math-l1-1-0.dll on windows , can you tell 
&gt; me how to
&gt; &amp;gt; &amp;amp;gt; import math module via pyqtdeploy?My scripyt as 
&gt; below:from
&gt; &amp;gt; &amp;amp;gt; PyQt5.QtCore import *
&gt; &amp;gt; &amp;amp;gt; from PyQt5.QtGui import *
&gt; &amp;gt; &amp;amp;gt; from PyQt5.QtWidgets import *
&gt; &amp;gt; &amp;amp;gt; import sys
&gt; &amp;gt; &amp;amp;gt; import mathclass Window(QWidget):
&gt; &amp;gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; def 
&gt; __init__(self):
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; super().__init__()
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; self.setupUI()
&gt; &amp;gt; &amp;amp;gt;
&gt; &amp;gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; def 
&gt; setupUI(self):
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; &amp;gt; self.lb=QLabel(self)
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; &amp;gt; self.lb.setText('Label')
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; &amp;gt; self.lb.move(30,10)
&gt; &amp;gt; &amp;amp;gt;
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; self.btn =
&gt; &amp;gt; QPushButton('test',self)
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; &amp;gt; self.btn.move(30,30)
&gt; &amp;gt; &amp;amp;gt;
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; self.cb =
&gt; &amp;gt; QComboBox(self)
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; &amp;gt; self.cb.move(30,70)
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; &amp;gt; self.cb.resize(200,30)
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; self.resize(30,80)
&gt; &amp;gt; &amp;amp;gt;
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; &amp;gt; self.btn.clicked.connect(self.test_func)
&gt; &amp;gt; &amp;amp;gt;
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; &amp;gt; self.setWindowTitle('test')
&gt; &amp;gt;
&gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; &amp;gt; self.setGeometry(400, 400, 300, 300)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; 
&gt; def
&gt; &amp;gt; test_func(self):
&gt; &amp;gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; test1 =
&gt; &amp;gt;
&gt; math.cos(30)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; test2 =
&gt; &amp;gt;
&gt; math.asinh(60)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; test3 =
&gt; &amp;gt; &amp;amp;gt;
&gt; math.exp(40.1)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; test4 =
&gt; &amp;gt;
&gt; math.expm1(5.23)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; test5 =
&gt; &amp;gt; &amp;amp;gt;
&gt; math.factorial(40)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; &amp;gt; test6 = math.isfinite(3.24)
&gt; &amp;gt; &amp;amp;gt; self.cb.addItems([f'{test1}', f'{test2}', f'{test3}', 
&gt; f'{test4}',
&gt; &amp;gt; &amp;amp;gt; f'{test5}', f'{test6}'])if __name__=='__main__':
&gt; &amp;gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; app =
&gt; QApplication(sys.argv)
&gt; &amp;gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; window=Window()
&gt; &amp;gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; window.show()
&gt; &amp;gt; &amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; 
&gt; sys.exit(app.exec_())
&gt; &amp;gt; &amp;amp;gt; _______________________________________________
&gt; &amp;gt; &amp;amp;gt; PyQt mailing list&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
&gt; [email protected]
&gt; &amp;gt; &amp;amp;gt; https://www.riverbankcomputing.com/mailman/listinfo/pyqt

_______________________________________________
PyQt mailing list    [email protected]
https://www.riverbankcomputing.com/mailman/listinfo/pyqt