首页 > 解决方案 > pip install Twister 抛出非常长的错误

问题描述

我正在尝试为使用 django 频道的项目在线学习教程。尝试安装 requirements.txt 导致在尝试安装 Twisted==16.4.0 时出错,所以我尝试了 pip install Twisted 以查看最新版本是否会导致相同的错误。

它确实做到了。我不确定到底是什么问题,我在尝试为 flask-socketio 项目安装 greenlet 时遇到了一个非常相似的问题,这让我放弃并尝试 django 频道。这很令人沮丧。

我是在虚拟环境中执行此操作的,我认为我的 Visual Studio C++ 内容可能有问题?我真的无法从这个错误中看到任何东西,看看它有多长而且我对此真的很陌生。

这是错误:

    iocpsupport.c
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(2229): warning C4047: '=': '__pyx_t_11iocpsupport_HANDLE' differs in levels of indirection from 'HANDLE'
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(2377): warning C4022: 'CreateIoCompletionPort': pointer mismatch for actual parameter 1
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(2377): warning C4022: 'CreateIoCompletionPort': pointer mismatch for actual parameter 2
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(2377): warning C4047: '=': '__pyx_t_11iocpsupport_HANDLE' differs in levels of indirection from 'HANDLE'
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(2492): warning C4022: 'GetQueuedCompletionStatus': pointer mismatch for actual parameter 1
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(2838): warning C4022: 'PostQueuedCompletionStatus': pointer mismatch for actual parameter 1
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(2949): warning C4022: 'CloseHandle': pointer mismatch for actual parameter 1
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(3292): warning C4996: 'PyObject_AsReadBuffer': deprecated in 3.0
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(4932): warning C4996: 'PyObject_AsWriteBuffer': deprecated in 3.0
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(5149): warning C4996: 'PyObject_AsReadBuffer': deprecated in 3.0
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(5786): warning C4996: 'PyObject_AsWriteBuffer': deprecated in 3.0
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(6146): warning C4996: 'PyObject_AsWriteBuffer': deprecated in 3.0
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(6164): warning C4996: 'PyObject_AsWriteBuffer': deprecated in 3.0
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(6182): warning C4996: 'PyObject_AsWriteBuffer': deprecated in 3.0
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(6509): warning C4996: 'PyObject_AsReadBuffer': deprecated in 3.0
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(7614): error C2039: 'tp_print': is not a member of '_typeobject'
    C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.496.0_x64__qbz5n2kfra8p0\include\cpython/object.h(193): note: see declaration of '_typeobject'
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(8421): warning C4996: '_PyUnicode_get_wstr_length': deprecated in 3.3
    src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(8437): warning C4996: '_PyUnicode_get_wstr_length': deprecated in 3.3
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.28.29333\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2

(完整输出https://pastebin.com/HwmPLVTK

标签: pythontwisted

解决方案


原谅您没有在所有这些杂乱无章中发现实际错误,但就是这样:

src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(7614):
    error C2039: 'tp_print': is not a member of '_typeobject'

这导致了这个问题,这表明您需要将 Python 从 3.9 降级到 3.8,或者如果 3.9 兼容版本已经发布,则升级 Twisted。

在撰写本文时 (2021-02-13),报告同样错误的票 #10075(尽管是法语)仍然开放,所以我认为最新版本的 Twisted 还不支持 Python 3.9。相应的里程碑也不完整,这个问题是目前唯一未解决的问题。


推荐阅读