[Twisted-Python] Binary wheels for Twisted on Windows?
![](https://secure.gravatar.com/avatar/8954b1298c209c874e3c862cbc48e23f.jpg?s=120&d=mm&r=g)
Hi, I'm investigating installing the Evennia MU* server on Windows. We use Twisted and will be requiring Python3.7 in our next release. I need to make easy-to-use install instructions since a lot of Windows users use our library. I tested with a Windows7 64bit VM and installed everything from scratch to emulate what a non-dev Windows user would see. I don't have Windows10 so can't compare to the install experience there (but Windows7 64bit is still relevant, having something like 24% of the active Windows user-base according to Steam). Using pip to install Evennia, at the Twisted requirement install step I run into an error telling me that I need "Microsoft Visual C++ build tools" from the URL https://visualstudio.microsoft.com/downloads. The first issue is that there does not appear to be any build-tools package named like that on that page or sub-page (at least not what I could find after digging around). I tried to install a few similarly-named packages, like "Visual Studio Build Tools", but had no luck getting past the Twisted install point. So that recommendation-string should likely be updated. The thing is though, while I could probably personally figure out how to set it up eventually, our Windows users are likely the least tech-savvy of our users. Requiring them to set up a compiler environment (despite us telling them that Python code does not need compilation) a bit too much. It seems Twisted has distributed binary Windows wheels in the past, would it be possible to get them again? Or should I recommend some other, specific install procedure for our Windows users? Cheers, Griatch, Evennia dev
![](https://secure.gravatar.com/avatar/cf223b7cf77583c0a2665bad01f84f11.jpg?s=120&d=mm&r=g)
On Tuesday, 28 May 2019 12:04:05 BST Griatch Art wrote:
What I do for my python projects on windows is turn them into a setup.exe that the user can run in the traditional way. There are many tools to help you do this. Then the user does not need to install anything except your setup.exe. You do not need python installed on the users system. And you can sort out the compilation issues when you kit the project. Make sure you use the right version of visual C++ that matches your python version. See https://wiki.python.org/moin/WindowsCompilers (Assume the same compiler for 3.7 and 3.8 as 3.6). I package pysvn, Barry's Emacs and SCM workbench this way for windows. You can use a similar approach for macOS. Barry
![](https://secure.gravatar.com/avatar/cf223b7cf77583c0a2665bad01f84f11.jpg?s=120&d=mm&r=g)
On Tuesday, 28 May 2019 15:05:29 BST Thomas Westfeld wrote: the user can run in the traditional way. There are many tools to
You can see the code I use for Barry's Emacs on github. Barry's Emacs uses PyQt for its Here is the script that builds the app: https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/PyQtBEmacs/ bemacs-windows.cmd It uses https://pypi.org/project/win-app-packager/ to do the heavy lifting. I have already built the python extension that is used by this point in the build process. Then look at this script that builds the setup.exe: https://github.com/barry-scott/BarrysEmacs/blob/master/Kits/Windows/build-wi... It uses Inno installer from http://www.jrsoftware.org/isinfo.php Barry
![](https://secure.gravatar.com/avatar/e1554622707bedd9202884900430b838.jpg?s=120&d=mm&r=g)
This works nicely for projects which are intended as applications, but for development dependencies it's a bit of a headache. We used to do this with Twisted and stopped because it causes too many problems with people trying to follow best practices (setting up virtualenvs, for example). We can fix this problem with binary wheels, and we should. Releases to PyPI should be automatically made by CI, and then we don't have to bother anyone to actually keep a personal development environment around at release time. -g
![](https://secure.gravatar.com/avatar/acf307afae4a1e72fa3cffe3596ed5f3.jpg?s=120&d=mm&r=g)
Hi Griatch, Our stack-based solution for customers hosting our platform requires the same. We could compile and distribute, but then we’d have to support dependencies… and I’ve never been a fan of embedded dependencies. We do that for software installation (embedding python and libs into a binary via PyInstaller), but for production run-time it’s just the modules – hence similar dependencies on developer tools being installed. The Microsoft link has changed over the years. I’ve pasted what we have in our documentation for those tools below, which looks like it’s validated on Windows 10 Pro, Win server 2012 R2, and Win server 2016. Also, on the Server side, I believe you also need to be mindful of the .NET versioning… in case there’s another application dependency. ======================= Get the developer tools from Microsoft: 1. Go to the following URL: https://www.visualstudio.com/vs/community/ 2. Download and run the vs_community file 3. Select "Desktop development with C++" 4. Reboot when finished -Chris From: Twisted-Python <twisted-python-bounces@twistedmatrix.com> On Behalf Of Griatch Art Sent: Tuesday, May 28, 2019 6:04 AM To: twisted-python@twistedmatrix.com Subject: [Twisted-Python] Binary wheels for Twisted on Windows? Hi, I'm investigating installing the Evennia MU* server on Windows. We use Twisted and will be requiring Python3.7 in our next release. I need to make easy-to-use install instructions since a lot of Windows users use our library. I tested with a Windows7 64bit VM and installed everything from scratch to emulate what a non-dev Windows user would see. I don't have Windows10 so can't compare to the install experience there (but Windows7 64bit is still relevant, having something like 24% of the active Windows user-base according to Steam). Using pip to install Evennia, at the Twisted requirement install step I run into an error telling me that I need "Microsoft Visual C++ build tools" from the URL https://visualstudio.microsoft.com/downloads. The first issue is that there does not appear to be any build-tools package named like that on that page or sub-page (at least not what I could find after digging around). I tried to install a few similarly-named packages, like "Visual Studio Build Tools", but had no luck getting past the Twisted install point. So that recommendation-string should likely be updated. The thing is though, while I could probably personally figure out how to set it up eventually, our Windows users are likely the least tech-savvy of our users. Requiring them to set up a compiler environment (despite us telling them that Python code does not need compilation) a bit too much. It seems Twisted has distributed binary Windows wheels in the past, would it be possible to get them again? Or should I recommend some other, specific install procedure for our Windows users? Cheers, Griatch, Evennia dev
![](https://secure.gravatar.com/avatar/8954b1298c209c874e3c862cbc48e23f.jpg?s=120&d=mm&r=g)
Thanks for the replies. Distributing a binary specifically for Windows is something I'd like to avoid. I'll look into the downloads suggested by Chris though (thanks!). But if it would be possible to have binary wheels, like Glyph mentions, that would indeed help our Window users a ton, and allow us to homogenize the install instructions across platforms as well. Den tis 28 maj 2019 13:04Griatch Art <griatch@gmail.com> skrev:
![](https://secure.gravatar.com/avatar/cf223b7cf77583c0a2665bad01f84f11.jpg?s=120&d=mm&r=g)
On Tuesday, 28 May 2019 12:04:05 BST Griatch Art wrote:
What I do for my python projects on windows is turn them into a setup.exe that the user can run in the traditional way. There are many tools to help you do this. Then the user does not need to install anything except your setup.exe. You do not need python installed on the users system. And you can sort out the compilation issues when you kit the project. Make sure you use the right version of visual C++ that matches your python version. See https://wiki.python.org/moin/WindowsCompilers (Assume the same compiler for 3.7 and 3.8 as 3.6). I package pysvn, Barry's Emacs and SCM workbench this way for windows. You can use a similar approach for macOS. Barry
![](https://secure.gravatar.com/avatar/cf223b7cf77583c0a2665bad01f84f11.jpg?s=120&d=mm&r=g)
On Tuesday, 28 May 2019 15:05:29 BST Thomas Westfeld wrote: the user can run in the traditional way. There are many tools to
You can see the code I use for Barry's Emacs on github. Barry's Emacs uses PyQt for its Here is the script that builds the app: https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/PyQtBEmacs/ bemacs-windows.cmd It uses https://pypi.org/project/win-app-packager/ to do the heavy lifting. I have already built the python extension that is used by this point in the build process. Then look at this script that builds the setup.exe: https://github.com/barry-scott/BarrysEmacs/blob/master/Kits/Windows/build-wi... It uses Inno installer from http://www.jrsoftware.org/isinfo.php Barry
![](https://secure.gravatar.com/avatar/e1554622707bedd9202884900430b838.jpg?s=120&d=mm&r=g)
This works nicely for projects which are intended as applications, but for development dependencies it's a bit of a headache. We used to do this with Twisted and stopped because it causes too many problems with people trying to follow best practices (setting up virtualenvs, for example). We can fix this problem with binary wheels, and we should. Releases to PyPI should be automatically made by CI, and then we don't have to bother anyone to actually keep a personal development environment around at release time. -g
![](https://secure.gravatar.com/avatar/acf307afae4a1e72fa3cffe3596ed5f3.jpg?s=120&d=mm&r=g)
Hi Griatch, Our stack-based solution for customers hosting our platform requires the same. We could compile and distribute, but then we’d have to support dependencies… and I’ve never been a fan of embedded dependencies. We do that for software installation (embedding python and libs into a binary via PyInstaller), but for production run-time it’s just the modules – hence similar dependencies on developer tools being installed. The Microsoft link has changed over the years. I’ve pasted what we have in our documentation for those tools below, which looks like it’s validated on Windows 10 Pro, Win server 2012 R2, and Win server 2016. Also, on the Server side, I believe you also need to be mindful of the .NET versioning… in case there’s another application dependency. ======================= Get the developer tools from Microsoft: 1. Go to the following URL: https://www.visualstudio.com/vs/community/ 2. Download and run the vs_community file 3. Select "Desktop development with C++" 4. Reboot when finished -Chris From: Twisted-Python <twisted-python-bounces@twistedmatrix.com> On Behalf Of Griatch Art Sent: Tuesday, May 28, 2019 6:04 AM To: twisted-python@twistedmatrix.com Subject: [Twisted-Python] Binary wheels for Twisted on Windows? Hi, I'm investigating installing the Evennia MU* server on Windows. We use Twisted and will be requiring Python3.7 in our next release. I need to make easy-to-use install instructions since a lot of Windows users use our library. I tested with a Windows7 64bit VM and installed everything from scratch to emulate what a non-dev Windows user would see. I don't have Windows10 so can't compare to the install experience there (but Windows7 64bit is still relevant, having something like 24% of the active Windows user-base according to Steam). Using pip to install Evennia, at the Twisted requirement install step I run into an error telling me that I need "Microsoft Visual C++ build tools" from the URL https://visualstudio.microsoft.com/downloads. The first issue is that there does not appear to be any build-tools package named like that on that page or sub-page (at least not what I could find after digging around). I tried to install a few similarly-named packages, like "Visual Studio Build Tools", but had no luck getting past the Twisted install point. So that recommendation-string should likely be updated. The thing is though, while I could probably personally figure out how to set it up eventually, our Windows users are likely the least tech-savvy of our users. Requiring them to set up a compiler environment (despite us telling them that Python code does not need compilation) a bit too much. It seems Twisted has distributed binary Windows wheels in the past, would it be possible to get them again? Or should I recommend some other, specific install procedure for our Windows users? Cheers, Griatch, Evennia dev
![](https://secure.gravatar.com/avatar/8954b1298c209c874e3c862cbc48e23f.jpg?s=120&d=mm&r=g)
Thanks for the replies. Distributing a binary specifically for Windows is something I'd like to avoid. I'll look into the downloads suggested by Chris though (thanks!). But if it would be possible to have binary wheels, like Glyph mentions, that would indeed help our Window users a ton, and allow us to homogenize the install instructions across platforms as well. Den tis 28 maj 2019 13:04Griatch Art <griatch@gmail.com> skrev:
participants (5)
-
Chris Satterthwaite
-
Glyph
-
Griatch Art
-
Scott, Barry
-
Thomas Westfeld