[Tutor] Using the Nimblenet Library in Python 3.6
Hello, I am running into some trouble when trying to import certain modules; I wanted to know if it is possible to use Nimblenet and all it's associated packages with Python3.6. From what I have read, that library is compatible with Python2.7. Some how I was able to successfully import Nimblenet on through the Conda prompt. But when I try to import some associated packages, it errors out. Here is an example: from nimblenet.activation_functions import tanh_function from nimblenet.learning_algorithms import scaled_conjugate_gradient from nimblenet.cost_functions import sum_squared_error from nimblenet.data_structures import Instance from nimblenet.neuralnet import NeuralNet import numpy as np import time import cPickle as pickle import logging from tabulate import tabulate import database_operations as dbo --- ModuleNotFoundError Traceback (most recent call last) in () 3 from __future__ import print_function 4 from nimblenet.activation_functions import tanh_function > 5 from nimblenet.learning_algorithms import scaled_conjugate_gradient 6 from nimblenet.cost_functions import sum_squared_error 7 from nimblenet.data_structures import Instance C:\Anaconda3\lib\site-packages\nimblenet\learning_algorithms\__init__.py in () 1 #from generalized_hebbian import * > 2 from scaled_conjugate_gradient import scaled_conjugate_gradient 3 from resilient_backpropagation import resilient_backpropagation 4 from scipyoptimize import scipyoptimize 5 ModuleNotFoundError: No module named 'scaled_conjugate_gradient' I would appreciate any help I can get! Thank you, Christine This e-mail, and any attachments, is intended solely for use by the addressee(s) named above. It may contain the confidential or proprietary information of Dana Incorporated, its subsidiaries, affiliates or business partners. If you are not the intended recipient of this e-mail or are an unauthorized recipient of the information, you are hereby notified that any dissemination, distribution or copying of this e-mail or any attachments, is strictly prohibited. If you have received this e-mail in error, please immediately notify the sender by reply e-mail and permanently delete the original and any copies or printouts. Computer viruses can be transmitted via email. The recipient should check this e-mail and any attachments for the presence of viruses. Dana Incorporated accepts no liability for any damage caused by any virus transmitted by this e-mail. English, Fran?ais, Espa?ol, Deutsch, Italiano, Portugu?s: http://www.dana.com/corporate-pages/Email ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Using the Nimblenet Library in Python 3.6
On 04/04/18 16:10, Evapcoop, Evapcoop wrote: > I wanted to know if it is possible to use Nimblenet and all it's > associated packages with Python3.6.> From what I have read, that library is > compatible with Python2.7. I think you just answered your own question. If the package is designed for v2.7 its extremely unlikely to work in 3.6 even if you did succeed in importing it. The differences between 2.7 and 3.6 are significant. But this forum is the wrong place to ask. We are focused on the Python language and standard library. For detailed info you really need to ask the nimblenet developers/support fora. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Using the Nimblenet Library in Python 3.6
On 04/04/2018 05:07 PM, Alan Gauld via Tutor wrote: > On 04/04/18 16:10, Evapcoop, Evapcoop wrote: >> I wanted to know if it is possible to use Nimblenet and all it's >> associated packages with Python3.6.> From what I have read, that library is >> compatible with Python2.7. > > I think you just answered your own question. If the package is > designed for v2.7 its extremely unlikely to work in 3.6 even if > you did succeed in importing it. The differences between 2.7 > and 3.6 are significant. > > But this forum is the wrong place to ask. We are focused on the > Python language and standard library. For detailed info you > really need to ask the nimblenet developers/support fora. Having no idea what nimblenet is I do see from a lightning search that it's tied into numpy somehow. So you may get some joy from asking in the Anaconda forums as well - the whole reason for existence of the Anaconda distribution is to make it reasonable to install things to do with Numerical and Scientific Python without some of the headaches sometimes associated with doing so from scratch - you seem to be trying the conda route, so maybe someone has blazed the trail before you? Also this is more supposition, but the fact that the line 3 from __future__ import print_function appears in the traceback means it's at least _possible_ Python 3 compatibility of the package has been considered - that's one of the most obvious and visible changes, that print becomes a function instead of a statement, and that was added to the future module somewhere along the line in the Py2 series. Best of luck in your searches! ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Using the Nimblenet Library in Python 3.6
On 05/04/18 00:07, Alan Gauld via Tutor wrote: On 04/04/18 16:10, Evapcoop, Evapcoop wrote: I wanted to know if it is possible to use Nimblenet and all it's associated packages with Python3.6.> From what I have read, that library is compatible with Python2.7. I think you just answered your own question. If the package is designed for v2.7 its extremely unlikely to work in 3.6 even if you did succeed in importing it. The differences between 2.7 and 3.6 are significant. Python 3.6 has more functionality than 2.7 by definition, but your comment implies, at least to me, that 2.7 and 3.6 are chalk and cheese. Nothing could be further from the truth and has regrettably been one of the reasons for the dreadfully slow uptake of Python 3. -- My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language. Mark Lawrence ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Using the Nimblenet Library in Python 3.6
On 05/04/18 04:02, Mark Lawrence wrote: > Python 3.6 has more functionality than 2.7 by definition, but your > comment implies, at least to me, that 2.7 and 3.6 are chalk and cheese. > Nothing could be further from the truth and has regrettably been one of > the reasons for the dreadfully slow uptake of Python 3. I disagree. Apart from the superficial language compatibility issues, which 2.7 can partially address by importing from future, the libraries are dramatically different. Any non trivial program runs into issues the minute it starts importing modules. module names are different, function names within those modules are different, return values and parameter types are different. Given Python programming relies hugely on the modules in the standard library I find it impossible to produce code that works across 2.7 and 3.x without significant effort to force compatibility. That's why tools like six etc exist. You may have been luckier than me but in my experience the gap between the two versions is significant and not to be underestimated. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Using the Nimblenet Library in Python 3.6
On 05/04/18 09:39, Alan Gauld via Tutor wrote: On 05/04/18 04:02, Mark Lawrence wrote: Python 3.6 has more functionality than 2.7 by definition, but your comment implies, at least to me, that 2.7 and 3.6 are chalk and cheese. Nothing could be further from the truth and has regrettably been one of the reasons for the dreadfully slow uptake of Python 3. I disagree. Apart from the superficial language compatibility issues, which 2.7 can partially address by importing from future, the libraries are dramatically different. Any non trivial program runs into issues the minute it starts importing modules. module names are different, function names within those modules are different, return values and parameter types are different. Given Python programming relies hugely on the modules in the standard library I find it impossible to produce code that works across 2.7 and 3.x without significant effort to force compatibility. That's why tools like six etc exist. You may have been luckier than me but in my experience the gap between the two versions is significant and not to be underestimated. Mountains out of molehills. I suggest that you give up programming. -- My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language. Mark Lawrence ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Using the Nimblenet Library in Python 3.6
On Thu, Apr 5, 2018 at 3:39 AM, Alan Gauld via Tutor wrote: > On 05/04/18 04:02, Mark Lawrence wrote: > >> Python 3.6 has more functionality than 2.7 by definition, but your >> comment implies, at least to me, that 2.7 and 3.6 are chalk and cheese. >> Nothing could be further from the truth and has regrettably been one of >> the reasons for the dreadfully slow uptake of Python 3. > > I disagree. Apart from the superficial language compatibility issues, > which 2.7 can partially address by importing from future, the libraries > are dramatically different. Any non trivial program runs into issues the > minute it starts importing modules. module names are different, function > names within those modules are different, return values and parameter > types are different. > > Given Python programming relies hugely on the modules in the standard > library I find it impossible to produce code that works across 2.7 > and 3.x without significant effort to force compatibility. That's why > tools like six etc exist. > > You may have been luckier than me but in my experience the gap > between the two versions is significant and not to be underestimated. I would appreciate keeping the FUD about the differences to a minimum :). The differences are there and they are significant, but far from insurmountable; in my experience, well-written Python 3 code is fairly trivial to port to Python 2/3. Depending on the quality of the initial Python 2 code, it's not quite as easy to port from 2 to 2/3 or directly to 3 due to Unicode/bytes confusion (made worse if the Python 2 code relies on bad Unicode practices), but they're still very much the same language. However, it does take some effort to port an established Python 2 codebase to Python 3, and to bring the thread back to the original topic, it looks like the author of the package in question is not particularly open to doing the work for their package (but may accept a pull request!). Christine (OP), you may have some luck with opening an issue at https://github.com/jorgenkg/python-neural-network and requesting Python 3 support. I don't have enough experience in the field of machine learning to competently suggest an alternative, but I've heard good things about TensorFlow. -- Zach ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Using the Nimblenet Library in Python 3.6
On 05/04/18 15:28, Zachary Ware wrote: > I would appreciate keeping the FUD about the differences to a minimum > :). The differences are there and they are significant, but far from > insurmountable; in my experience, well-written Python 3 code is fairly > trivial to port to Python 2/3. I agree but we were speaking in the context of the OP who wanted to use a module written for 2.7 within 3.6. I stated that was unlikely to work because the differences in versions were significant. It is non trivial but not difficult to port code from one version to another. It is very much more effort to produce a single code base that works with both v2 and v3. And that was the context in which my comments should be taken. Speaking personally I write almost all my new code for v3 and keep my old code at v2. I have ported a few projects to v3. I have only written 2 projects that work on both versions and they were painful to do. That was what I was talking about in my response to Mark. It's not a reasonable thing to expect a module written for v2 to work in v3, it's too much work for most authors. They might consider porting it to v3 if they are not busy with other things but trying to build for dual versions is no fun at all. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor