-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Python 3 support for Dragonfly + NatLink #337
Comments
This only really affects DNS/DPI as they are required to use Python 32-bit 2.7.x due to its dependence on Natlink. Natlink is working towards Python 3 support. Dragonfly supports Python 3 64 bit in all other engines. Microsoft has removed the following Compilers for Python 2.7 as it is no longer supported. It is no longer available to download officially from Microsoft. Work around with pre-compiled package |
Hi @bijanbina, I'm glad you have been helped out by the community around Dragonfly and similar projects. We do our best, however I think it is an exaggeration to say it is one of the best open-source projects out there. As LexiconCode said, Python 2.7 is only required for using Dragonfly with DNS. I can say that the experimental Natlink support for Python 3 seems to work well with Dragonfly. You can find out more about that in the development channel for natlink. Whichever major version is used, Natlink also requires 32-bit Python. I would welcome improvements to Dragonfly's documentation. It can be difficult to keep it orderly and up-to-date. Changes are typically submitted through GitHub pull requests, rather than direct branch access. |
@LexiconCode Thanks for your help Look like wxPython needed to be installed too. Thanks to your tip found the package here and installed it with
Unfortunately, it didn't help me get past of the following error when executing
Look like the only option to use Dragonfly with DNS is to upgrade to python3 |
@bijanbina Maybe try the |
@bijanbina connect with me over Gitter and I'm willing to help you out through some remote support using team viewer quick support |
Cheers! |
Glad we could help! Stable Python 3 support for Natlink is getting there. It is a difficult process, unfortunately. I'll give this issue a more appropriate name and leave it open for now. I'll also update the documentation to mention this. |
Unfortunately the direct links to the regex package above expire. For an end-user not too big of an issue but it does add extra steps. The following:
This is more complicated which I haven't quite figured out for continuous integration needing to obtain the regex package. |
@LexiconCode |
I have added the following paragraph in the relevant documentation sections:
Does this look good/reasonable? |
Install Microsoft Visual C++ Compiler for Python 2.7 from web.archive.org mirror |
Both myself and Aaron have found this rather difficult. I'm afraid this dependency will have to stay in for the moment, unfortunately. I will make it an optional "extra" dependency for the functionality under The other troubles with this package I referred to above are edge cases arising from the decision of the regex package maintainers to bundle their internal Python extension module, i.e. a Python module written in C, with the Python code that uses it. This is not a problem unless you use both 32-bit and 64-bit builds of a particular version of Python, in my case Python 3.7. |
Here is some beta instructions to install Natlink on python 3 32-bit with PIP. These instructions work for any natlink based project like dragonfly or caster. Preinstall requirements
Natlink Install Instructions
Extra commands if needed
Info
Troubleshooting Please post here if you have any issues.
|
Thank you for these instructions, Aaron! |
I'd like to say here that I have changed my mind on dropping Python 2.7 support for Dragonfly in the future. Since this is an old, basically complete library that has always worked with Python 2 and I'm familiar enough with supporting both major versions, I'm happy to continue support for both 2.7 and 3.x. This would be for the core functionality (i.e. non-optional features), the Natlink, SAPI 5 and Sphinx engine implementations, and the
I'll document these exceptions somewhere visible and, perhaps, include a succinct explanation as to why, excluding the above exceptions, we are ignoring the Python 2 EOL. |
Re: #337. - Update the Natlink engine page vis-à-vis Python 2.7. - Clean up one question and answer on the FAQ page.
I'm not sure why I closed this issue. @LexiconCode Am I right in thinking there is still no stable version of Natlink for Python 3? |
I would say the current release that's out there is usable 14 through 15. Many people have used natlink installer without issue. The only aspect I would consider unstable would be DNS 13. Which my PR seems to resolve despite it being workaround. If all goes to plan the next release for include DNS 16 support and the patch for DNS 13 Setup process can lead to some edge cases. Therefore, I'm working on redoing the setup process without the installer. |
Thank you for the quick reply. Good to hear about the fixes for DNS 13 and 16. I need to know what link to use in Dragonfly's documentation, however. Should it be this one, the GitHub releases page or something else? |
The documentation needs to be updated on the master branch. However, I can confidently say we should use GitHub Natlink documentation for installation. The original website has some good information but it should be updated, distilled and brought into the repository. Which of course could be referenced by the website as needed. |
All right then. So the Natlink repository's readme file, once it is updated? For the time being, this page seems clearer to me, although there is obviously something wrong with the Markdown links. I should be able to help fix that, if you like. As stated in earlier comments, I would like to keep Python 2.7 support around for Dragonfly. I'll retain the link to the old install instructions and add a new link for Python 3 users. |
Yeah that would be helpful fixing the links. Sounds like a plan! |
First of all thanks for all help of the community, dragonfly is one of the best open-source projects I've seen.
I'm trying to use dragonfly with DNS but I've been lost. In the Installation section in the document, it has been mentioned to install
Does this support python3? I think the doc is a bit unclear about that. Also, I have seen many typos in the document (like download in the above sentence). I would like to take the time and fix them. Can I have access?
I tried python2.7.18 but in the pip installation regex installation failed. I think because python 2.7 has reached its end of life.
The text was updated successfully, but these errors were encountered: