Do you think we should add a check so the concatenation is not performed if the docstring is None? The increased binary compression might matter enough for some users.
Vlad On Wed, Oct 17, 2012 at 2:13 PM, Legault, Alain <[email protected]> wrote: > Brent hit it right on! > > I had optimisation level set to 2 which does remove the docstrings from the > exe. > > Reverting to level 1 (i.e. python -O (only optimize the bytecode) ) fixes > the docstring problem. > > Good work! :-) and many thanks. > > > Dr Alain Legault > > scientifique sénior | senior scientist > > Groupe Optimisation des Procédés Industriels | Industrial Systems > Optimization Group > > CanmetÉNERGIE | CanmetENERGY > Ressources naturelles Canada | Natural Resources Canada > 1615 Lionel-Boulet, C.P. 4800, Varennes, Qc J3X 1S6 > > > > [email protected] > Téléphone | Telephone +1-450-652-7031 > > Télécopieur | Facsimile +1-450-652-5918 > > > > Gouvernement du Canada | Government of Canada > > www.canmetenergie.rncan.gc.ca | www.canmetenergy.nrcan.gc.ca > > > > ________________________________ > From: Brent Pedersen [mailto:[email protected]] > Sent: Tuesday, October 16, 2012 2:51 PM > > To: [email protected] > Subject: Re: [Scikit-learn-general] Sklearn and PY2exe > > > > On Tue, Oct 16, 2012 at 11:10 AM, Legault, Alain > <[email protected]> wrote: >> >> Hello François, >> >> Thanks for the pointer. The explicit import solved one problem. >> >> Unfortunately, Py2exe had more surprises in store for us. >> >> Py2exe will compile the following source >> >> from sklearn.utils import weight_vector >> from sklearn.decomposition import PCA >> Pass >> >> But the exe will crash with >> >> Traceback (most recent call last): >> File "exe.py", line 3, in <module> >> File "zipextimporter.pyo", line 82, in load_module >> File "sklearn\decomposition\__init__.pyo", line 8, in <module> >> File "zipextimporter.pyo", line 82, in load_module >> File "sklearn\decomposition\pca.pyo", line 302, in <module> >> File "sklearn\decomposition\pca.pyo", line 304, in ProbabilisticPCA >> TypeError: unsupported operand type(s) for +=: 'NoneType' and 'NoneType' >> >> So the offendinbg lines (to py2exe) in PCA are >> >> >> 302 class ProbabilisticPCA(PCA): >> 303 """Additional layer on top of PCA that adds a probabilistic >> evaluation""" >> 304 __doc__ += PCA.__doc__ >> >> Seems py2exe can't stomach line 304. >> >> Commenting 304 out (innocuous enough I think) makes the thing fly :-))) > > > > This could be because you used: > "optimize": 1 > in your setup.py. That may remove the docstrings. > >> >> >> Thanks again for the pointer >> >> >> >> Dr Alain Legault >> >> scientifique sénior | senior scientist >> >> Groupe Optimisation des Procédés Industriels | Industrial Systems >> Optimization Group >> >> CanmetÉNERGIE | CanmetENERGY >> Ressources naturelles Canada | Natural Resources Canada >> 1615 Lionel-Boulet, C.P. 4800, Varennes, Qc J3X 1S6 >> >> >> >> [email protected] >> Téléphone | Telephone +1-450-652-7031 >> >> Télécopieur | Facsimile +1-450-652-5918 >> >> >> >> Gouvernement du Canada | Government of Canada >> >> www.canmetenergie.rncan.gc.ca | www.canmetenergy.nrcan.gc.ca >> >> >> -----Original Message----- >> From: François Deheeger [mailto:[email protected]] >> Sent: Thursday, October 11, 2012 7:51 AM >> To: [email protected] >> Subject: Re: [Scikit-learn-general] Sklearn and PY2exe >> >> Hello, >> >> i recently have this kind of problem using pyinstaller (another packaging >> tool.. but things should not be so different). They call this hidden imports >> problem and I fixed this by adding explicit imports in the main file : >> >> # pyinstaller hidden imports >> from sklearn.utils import weight_vector >> from sklearn.decomposition import PCA, FastICA from sklearn.pls import >> PLSRegression >> >> With those lines, i succeeded in making a stand-alone app that uses >> sklearn (and more). >> >> >> Many modules have some hidden imports problems (hidden means 'my packaging >> tool do not see it'). To solve this in pyinstaller they use 'hook files' for >> standard modules. One day i may try to make one... I think that sklearn >> deserves to get one ! >> >> Hope it helps. >> >> >> >> 2012/10/11 Olivier Grisel <[email protected]>: >> > Apparently this is a known issue of py2exe with cython modules: >> > >> > http://www.digipedia.pl/usenet/thread/15906/9309/ >> > >> > Try adding the missing cython modules explicitly in your includes to >> > see if make it possible to workaround the py2exe dependency detection >> > limitations. >> > >> > -- >> > Olivier >> > >> > ---------------------------------------------------------------------- >> > -------- Don't let slow site performance ruin your business. Deploy >> > New Relic APM Deploy New Relic app performance management and know >> > exactly what is happening inside your Ruby, Python, PHP, Java, and >> > .NET app Try New Relic at no cost today and get our sweet Data Nerd >> > shirt too! >> > http://p.sf.net/sfu/newrelic-dev2dev >> > _______________________________________________ >> > Scikit-learn-general mailing list >> > [email protected] >> > https://lists.sourceforge.net/lists/listinfo/scikit-learn-general >> >> >> >> -- >> >> François Deheeger >> >> >> ------------------------------------------------------------------------------ >> Don't let slow site performance ruin your business. Deploy New Relic APM >> Deploy New Relic app performance management and know exactly what is >> happening inside your Ruby, Python, PHP, Java, and .NET app Try New Relic at >> no cost today and get our sweet Data Nerd shirt too! >> http://p.sf.net/sfu/newrelic-dev2dev >> _______________________________________________ >> Scikit-learn-general mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general >> >> >> ------------------------------------------------------------------------------ >> Don't let slow site performance ruin your business. Deploy New Relic APM >> Deploy New Relic app performance management and know exactly >> what is happening inside your Ruby, Python, PHP, Java, and .NET app >> Try New Relic at no cost today and get our sweet Data Nerd shirt too! >> http://p.sf.net/sfu/newrelic-dev2dev >> _______________________________________________ >> Scikit-learn-general mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general > > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_sfd2d_oct > _______________________________________________ > Scikit-learn-general mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/scikit-learn-general > ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_sfd2d_oct _______________________________________________ Scikit-learn-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
