pyenv:构建失败(Fedora34使用python构建20180424)
我需要帮助通过pyenv安装pythonpyenv:构建失败(Fedora34使用python构建20180424),python,fedora,pyenv,Python,Fedora,Pyenv,我需要帮助通过pyenv安装python $ pyenv -v pyenv 1.2.27 我尝试安装3.6.8版 $ pyenv install 3.6.8 我出错了 正在下载Python-3.6.8.tar.xz。。。 ->正在安装Python-3.6.8。。。 /home/dn121283mvp1/.pyenv/plugins/python build/bin/python build:line 1804:355307分段错误(堆芯转储)“$PYTHON_BIN”-s-m ensurep
$ pyenv -v
pyenv 1.2.27
我尝试安装3.6.8版
$ pyenv install 3.6.8
我出错了
正在下载Python-3.6.8.tar.xz。。。
->正在安装Python-3.6.8。。。
/home/dn121283mvp1/.pyenv/plugins/python build/bin/python build:line
1804:355307分段错误(堆芯转储)“$PYTHON_BIN”-s-m
ensurepip${ensurepip_opts}>/dev/null 2>&1从安装pip
.
/home/dn121283mvp1/.pyenv/plugins/python build/bin/python build:line
1785:355338分段错误(内核转储)${PYTHON_BIN}“-s
“${get\u pip}”${get\u pip\u OPTS}1>&4 2>&1错误:无法安装pip
通过get-pip.py
构建失败(Fedora34使用python构建20180424)
现场检查或清理工作树
/tmp/python-build.20210506064823.343245结果记录到
/tmp/python-build.20210506064823.343245.log
最后10行日志:安装|*)ensurepip=“”;\esac;\/python
-E-m ensurepip\$ensurepip--root=/;\fi查找链接:/tmp/tmp4a3uh2fu收集设置工具收集pip安装
收集的软件包:setuptools,pip已成功安装pip-18.1
设置工具-40.6.2
我需要3.6.8版才能安装您可以将补丁传递给pyenv以修复此问题 我在这里发布了一个解决方案 您需要修补一些Python 3.6对象分配代码以使用16字节对齐。这似乎在Python3.7中得到了修复
a
和b
在Python3.6.8上测试,因为这正是我所需要的
$ cat alignment.patch
--- Include/objimpl.h
+++ Include/objimpl.h
@@ -250,7 +250,7 @@
union _gc_head *gc_prev;
Py_ssize_t gc_refs;
} gc;
- double dummy; /* force worst-case alignment */
+ long double dummy; /* force worst-case alignment */
} PyGC_Head;
extern PyGC_Head *_PyGC_generation0;
--- Objects/obmalloc.c
+++ Objects/obmalloc.c
@@ -643,8 +643,8 @@
*
* You shouldn't change this unless you know what you are doing.
*/
-#define ALIGNMENT 8 /* must be 2^N */
-#define ALIGNMENT_SHIFT 3
+#define ALIGNMENT 16 /* must be 2^N */
+#define ALIGNMENT_SHIFT 4
/* Return the number of bytes in size class I, as a uint. */
#define INDEX2SIZE(I) (((uint)(I) + 1) << ALIGNMENT_SHIFT)
$ pyenv install --patch 3.6.8 < alignment.patch
Downloading Python-3.6.8.tar.xz...
-> https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
Installing Python-3.6.8...
patching file Include/objimpl.h
Hunk #1 succeeded at 255 (offset 5 lines).
patching file Objects/obmalloc.c
Hunk #1 succeeded at 650 (offset 7 lines).
Installed Python-3.6.8 to /home/asdf/.pyenv/versions/3.6.8