在 Windows 上构建 twisted[tls] 失败?

Failed building twisted[tls] on Windows?

我已经尝试将 channels 2.4.0 安装到 Windows 10 上的 python 3.8.1 venv 中。我正在使用 django 2.2.9。在构建 twisted[tls] 轮子期间安装失败:

Collecting twisted[tls]>=18.7
  Using cached Twisted-19.10.0.tar.bz2 (3.1 MB)
Requirement already satisfied: cryptography>=2.7 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from autobahn>=0.18->daphne~=2.3->channels) (2.8)
Requirement already satisfied: txaio>=20.1.1 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from autobahn>=0.18->daphne~=2.3->channels) (20.1.1)
Requirement already satisfied: zope.interface>=4.4.2 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from twisted[tls]>=18.7->daphne~=2.3->channels) (4.7.1)
Requirement already satisfied: constantly>=15.1 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from twisted[tls]>=18.7->daphne~=2.3->channels) (15.1.0)
Requirement already satisfied: incremental>=16.10.1 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from twisted[tls]>=18.7->daphne~=2.3->channels) (17.5.0)
Requirement already satisfied: Automat>=0.3.0 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from twisted[tls]>=18.7->daphne~=2.3->channels) (0.8.0)
Requirement already satisfied: hyperlink>=17.1.1 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from twisted[tls]>=18.7->daphne~=2.3->channels) (19.0.0)
Requirement already satisfied: PyHamcrest>=1.9.0 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from twisted[tls]>=18.7->daphne~=2.3->channels) (2.0.0)
Requirement already satisfied: attrs>=17.4.0 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from twisted[tls]>=18.7->daphne~=2.3->channels) (19.3.0)
Requirement already satisfied: pyopenssl>=16.0.0 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from twisted[tls]>=18.7->daphne~=2.3->channels) (19.1.0)
Requirement already satisfied: service_identity>=18.1.0 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from twisted[tls]>=18.7->daphne~=2.3->channels) (18.1.0)
Requirement already satisfied: idna!=2.3,>=0.6 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from twisted[tls]>=18.7->daphne~=2.3->channels) (2.8)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from cryptography>=2.7->autobahn>=0.18->daphne~=2.3->channels) (1.13.2)
Requirement already satisfied: six>=1.4.1 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from cryptography>=2.7->autobahn>=0.18->daphne~=2.3->channels) (1.14.0)
Requirement already satisfied: setuptools in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from zope.interface>=4.4.2->twisted[tls]>=18.7->daphne~=2.3->channels) (45.1.0)
Requirement already satisfied: pyasn1-modules in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from service_identity>=18.1.0->twisted[tls]>=18.7->daphne~=2.3->channels) (0.2.8)
Requirement already satisfied: pyasn1 in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from service_identity>=18.1.0->twisted[tls]>=18.7->daphne~=2.3->channels) (0.4.8)
Requirement already satisfied: pycparser in c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\lib\site-packages (from cffi!=1.11.3,>=1.8->cryptography>=2.7->autobahn>=0.18->daphne~=2.3->channels) (2.19)
Building wheels for collected packages: twisted
  Building wheel for twisted (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: 'c:\users\florian\.virtualenvs\mvp_industrial-mzsq8pv8\scripts\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Florian\AppData\Local\Temp\pip-install-4pveivx4\twisted\setup.py'"'"'; __file__='"'"'C:\Users\Floria
n\AppData\Local\Temp\pip-install-4pveivx4\twisted\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\Florian\Ap
pData\Local\Temp\pip-wheel-te0p20uj'
       cwd: C:\Users\Florian\AppData\Local\Temp\pip-install-4pveivx4\twisted\
[...]
  copying src\twisted\words\xish\xpathparser.g -> build\lib.win-amd64-3.8\twisted\words\xish
  warning: BuildPy3: byte-compiling is disabled, skipping.

  running build_ext
  building 'twisted.test.raiser' extension
  error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
  ----------------------------------------
  ERROR: Failed building wheel for twisted
  Running setup.py clean for twisted
Failed to build twisted

我不清楚在安装当前的 MS Visual C++ 2019 时要选择哪些组件(哪个编译器等,例如 C++-Clang-cl für v142-Buildtools (x64/x86)C++ v14.20-ATL für v142-Buildtools (x86 und x64) 等)。我怎样才能让安装成功?

我遇到了同样的问题,可能是因为 python 3.8 还不能配置 twisted(正如 Jean 所指出的)。 我通过在 conda 中将我的 Python 版本降级为 3.7 而不是 3.8 来解决它:

conda install python==3.7

我目前的解决方法是从 here 下载预构建的 twisted 19.10.0,将其放入 deps 文件夹并在安装 [=12] 之前使用 pipenv install deps\Twisted-19.10.0-cp38-cp38-win_amd64.whl 安装它=].但是,该网站似乎只提供最新的软件包版本。如果能够重现特定的旧版本就好了。