#2028 closed defect

Twisted endpoints introduce a dependency on pywin32 — at Version 4

Reported by: daira Owned by: daira
Priority: normal Milestone: 1.11.0
Component: packaging Version: 1.10.0
Keywords: pywin32 windows twisted usability regression review-needed openitp-packaging setuptools Cc:
Launchpad Bug:

Description (last modified by zooko)

In #1274 we managed to eliminate Tahoe's problematic dependency on pywin32, which significantly complicated building on Windows. However this dependency seems to have crept in again via Twisted's endpoints code:

On 10/07/13 18:44, Mike Nation wrote:
>      File "C:\tahoe\support\Lib\site-packages\twisted-12.3.0-py2.7-win-amd64.egg\twisted\internet\endpoints.py", line 25, in <module>
>     from twisted.internet import stdio
>      File "C:\tahoe\support\Lib\site-packages\twisted-12.3.0-py2.7-win-amd64.egg\twisted\internet\stdio.py", line 28, in <module>
>     from twisted.internet import _win32stdio
>      File "C:\tahoe\support\Lib\site-packages\twisted-12.3.0-py2.7-win-amd64.egg\twisted\internet\_win32stdio.py", line 7, in <module>
>     import win32api
>
> exceptions.ImportError: No module named win32api
>
> Failed to load application: No module named win32api

Note that we probably didn't detect this earlier because of #1334.

Change History (4)

comment:1 Changed at 2013-07-17T14:53:14Z by daira

  • Keywords twisted added

comment:2 Changed at 2013-07-17T14:59:24Z by daira

Workaround: manually install the pywin32 package from http://sourceforge.net/projects/pywin32/files/. Make sure to get the correct file for the version of Python you are using -- e.g. ending in "py2.7.exe" for Python v2.7. If using 64-bit Windows, the file should have "win-amd64" in its name.

comment:3 Changed at 2014-02-20T22:19:06Z by daira

  • Keywords usability regression added
  • Owner set to daira
  • Status changed from new to assigned

Options:

  1. Update docs/quickstart.rst to point to downloads of pywin32 (and describe how to select the right one). We used to have this information; adding it back is a usability regression.
  2. Build eggs of pywin32 for 32-bit and 64-bit Python 2.7, and make sure they are used by a quickstart build. This may be hampered by #142.
  3. Submit a patch to Twisted to remove the hard dependency on pywin32. Update src/allmydata/_auto_deps.py to allow only versions of Twisted that don't have the hard dependency (either before endpoints, or after the fix), when running on Windows.
  4. Update src/allmydata/_auto_deps.py to allow only versions of Twisted that are before endpoints, when running on Windows.

comment:4 Changed at 2014-02-20T22:42:53Z by zooko

  • Description modified (diff)
Note: See TracTickets for help on using tickets.