我无法安装 eventlet/gevent/greenlet
Posted
技术标签:
【中文标题】我无法安装 eventlet/gevent/greenlet【英文标题】:I can't install eventlet/gevent/greenlet 【发布时间】:2021-03-04 20:41:52 【问题描述】:我在我的一个项目中使用 Flask-SocketIO,它会导致一些问题,即客户端无法连接到服务器。我想这可能是由于它使用了flask默认开发服务器,所以我尝试安装eventlet
,但没有成功。我收到了这个错误:
Running setup.py install for greenlet ... error
ERROR: Command errored out with exit status 1:
command: /Users/arnu515/Documents/code/videochat/temp/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/62/291hqhv517j2x50bfw65mj8r0000gn/T/pip-install-kilo4pkb/greenlet/setup.py'"'"'; __file__='"'"'/private/var/folders/62/291hqhv517j2x50bfw65mj8r0000gn/T/pip-install-kilo4pkb/greenlet/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/62/291hqhv517j2x50bfw65mj8r0000gn/T/pip-record-bl7qcak2/install-record.txt --single-version-externally-managed --compile --install-headers /Users/arnu515/Documents/code/videochat/temp/venv/include/site/python3.8/greenlet
cwd: /private/var/folders/62/291hqhv517j2x50bfw65mj8r0000gn/T/pip-install-kilo4pkb/greenlet/
Complete output (112 lines):
running install
running build
running build_ext
building 'greenlet' extension
creating build
creating build/temp.macosx-10.14.6-x86_64-3.8
xcrun -sdk macosx clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Headers -arch arm64 -arch x86_64 -I/Users/arnu515/Documents/code/videochat/temp/venv/include -I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8 -c greenlet.c -o build/temp.macosx-10.14.6-x86_64-3.8/greenlet.o
In file included from greenlet.c:5:
In file included from ./greenlet.h:8:
In file included from /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/Python.h:11:
In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include/limits.h:21:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/limits.h:63:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:807:2: error: Unsupported architecture
#error Unsupported architecture
^
In file included from greenlet.c:5:
In file included from ./greenlet.h:8:
In file included from /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/Python.h:11:
In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include/limits.h:21:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/limits.h:64:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/limits.h:8:2: error: architecture not supported
#error architecture not supported
^
In file included from greenlet.c:5:
In file included from ./greenlet.h:8:
In file included from /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/Python.h:25:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:64:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:71:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:27:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:33:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h:34:2: error: architecture not supported
#error architecture not supported
^
In file included from greenlet.c:5:
In file included from ./greenlet.h:8:
In file included from /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/Python.h:25:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:64:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:71:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:27:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:55:9: error: unknown type name '__int64_t'
typedef __int64_t __darwin_blkcnt_t; /* total blocks */
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:56:9: error: unknown type name '__int32_t'; did you mean '__int128_t'?
typedef __int32_t __darwin_blksize_t; /* preferred block size */
^
note: '__int128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:57:9: error: unknown type name '__int32_t'; did you mean '__int128_t'?
typedef __int32_t __darwin_dev_t; /* dev_t */
^
note: '__int128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:60:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_gid_t; /* [???] process and group IDs */
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:61:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_id_t; /* [XSI] pid_t, uid_t, or gid_t*/
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:62:9: error: unknown type name '__uint64_t'
typedef __uint64_t __darwin_ino64_t; /* [???] Used for 64 bit inodes */
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:68:9: error: unknown type name '__darwin_natural_t'
typedef __darwin_natural_t __darwin_mach_port_name_t; /* Used by mach */
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:70:9: error: unknown type name '__uint16_t'; did you mean '__uint128_t'?
typedef __uint16_t __darwin_mode_t; /* [???] Some file attributes */
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:71:9: error: unknown type name '__int64_t'
typedef __int64_t __darwin_off_t; /* [???] Used for file sizes */
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:72:9: error: unknown type name '__int32_t'; did you mean '__int128_t'?
typedef __int32_t __darwin_pid_t; /* [???] process and group IDs */
^
note: '__int128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:73:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_sigset_t; /* [???] signal set */
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:74:9: error: unknown type name '__int32_t'; did you mean '__int128_t'?
typedef __int32_t __darwin_suseconds_t; /* [???] microseconds */
^
note: '__int128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:75:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_uid_t; /* [???] user IDs */
^
note: '__uint128_t' declared here
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h:76:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_useconds_t; /* [???] microseconds */
^
note: '__uint128_t' declared here
In file included from greenlet.c:5:
In file included from ./greenlet.h:8:
In file included from /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/Python.h:25:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:64:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:71:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h:43:9: error: unknown type name '__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t __darwin_wctype_t;
^
note: '__uint128_t' declared here
In file included from greenlet.c:5:
In file included from ./greenlet.h:8:
In file included from /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/Python.h:25:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:64:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:75:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h:31:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h:37:2: error: architecture not supported
#error architecture not supported
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
error: command 'xcrun' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /Users/arnu515/Documents/code/videochat/temp/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/62/291hqhv517j2x50bfw65mj8r0000gn/T/pip-install-kilo4pkb/greenlet/setup.py'"'"'; __file__='"'"'/private/var/folders/62/291hqhv517j2x50bfw65mj8r0000gn/T/pip-install-kilo4pkb/greenlet/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/62/291hqhv517j2x50bfw65mj8r0000gn/T/pip-record-bl7qcak2/install-record.txt --single-version-externally-managed --compile --install-headers /Users/arnu515/Documents/code/videochat/temp/venv/include/site/python3.8/greenlet Check the logs for full command output.
gevent 也会发生同样的事情。你能帮我解决这个问题吗?
仅供参考 - 操作系统:MacOS,Python:3.8.9
【问题讨论】:
我设法通过在客户端降级到 socketio 2 来解决 flask-socketio 的问题,而对于 eventlet,@Rivers 回答有效! 【参考方案1】:这里描述了这个问题(并且有解决这个问题的方法):https://github.com/ycm-core/YouCompleteMe/issues/3770
这里也是:https://github.com/python-greenlet/greenlet/issues/181
简而言之:
这是 macOS 上的 Python 版本的问题,尤其是 Xcode 附带的 Python 版本。
正如您在以xcrun -sdk macosx
开头的行中所见,它正在尝试构建一个arm64 切片,因此会引发错误error architecture not supported
。
这些解决方案适用于其他用户:
第一个解决方案:
从 brew、python.org 或 pyenv 升级到最新版本的 Python。
第二种解决方案:
也许您已经拥有最新版本的 Python,所以您可以这样做:
brew link --overwrite python@3.8
第三种解决方案:
使用 conda:
安装 miniconda (https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html)
# Create the environment (here, named "myenv")
conda create --name myenv
# Activate the environment
conda activate myenv
# In this environment, install the Python packages you need
conda install -c conda-forge flask-socketio
# Etc.
然后从这个虚拟环境运行你的代码
【讨论】:
感谢您的帮助!有效!具体来说,我使用了您给我的第二种解决方案。非常感谢以上是关于我无法安装 eventlet/gevent/greenlet的主要内容,如果未能解决你的问题,请参考以下文章