【问题标题】:How to fix the errors while compiling Python 3.2.0如何在编译 Python 3.2.0 时修复错误
【发布时间】:2020-03-06 06:25:30
【问题描述】:

我正在尝试创建 Python-3.2.0 虚拟环境来升级我的工具。 该工具早期使用 2.7.15 版本构建。现在我想将它升级到 Python-3.2.0

这些是我在 Cent-OS 上遵循的步骤:

(a) 从官方仓库下载 Python 源代码 光盘 /tmp wgethttps://www.python.org/ftp/python/3.2/Python-3.2.tgz tar -xvf Python-3.2 cd Python-3.2

(b) 使用所需的标志编译 Python ./configure --enable-optimizations --enable-shared -- 前缀=/opt/python LDFLAGS=-Wl,-rpath=/opt/python/lib 须藤制作安装

我收到以下错误:

/usr/bin/install -c python-config /opt/python/bin/python3.2m-config
    rm python-config
    LD_LIBRARY_PATH=/tmp/Python-3.2: ./python -E ./setup.py install \
            --prefix=/opt/python \
            --install-scripts=/opt/python/bin \
            --install-platlib=/opt/python/lib/python3.2/lib-dynload \
            --root=/
    running install
    running build
    running build_ext
    building dbm using ndbm
    INFO: Can't locate Tcl/Tk libs and/or headers
    building '_dbm' extension
    gcc -pthread -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_NDBM_H -IInclude -I/opt/python/include -I. -I./Include -I/usr/local/include -I/tmp/Python-3.2 -c /tmp/Python-3.2/Modules/_dbmmodule.c -o build/temp.linux-x86_64-3.2/tmp/Python-3.2/Modules/_dbmmodule.o
I   n file included from Include/Python.h:111:0,
                    from /tmp/Python-3.2/Modules/_dbmmodule.c:6:
    Include/modsupport.h:27:1: warning: ‘_PyArg_ParseTuple_SizeT’ is an unrecognized format function type [-Wformat=]
    PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...) Py_FORMAT_PARSETUPLE(PyArg_ParseTuple, 2, 3);
    ^
    gcc -pthread -shared -Wl,-rpath=/opt/python/lib build/temp.linux-x86_64-3.2/tmp/Python-3.2/Modules/_dbmmodule.o -L. -L/opt/python/lib -L/usr/local/lib -lpython3.2m -o build/lib.linux-x86_64-3.2/_dbm.cpython-32m.so
    *** WARNING: renaming "_dbm" since importing it failed: build/lib.linux-x86_64-3.2/_dbm.cpython-32m.so: undefined symbol: dbm_nextkey

    Python build finished, but the necessary bits to build these modules were not found:
    _tkinter           bz2                ossaudiodev
    To find the necessary bits, look in setup.py in detect_modules() for the module's name.


    Failed to build these modules:
    _dbm

    running build_scripts
    copying and adjusting /tmp/Python-3.2/Tools/scripts/pydoc3 -> build/scripts-3.2
    copying and adjusting /tmp/Python-3.2/Tools/scripts/idle3 -> build/scripts-3.2
    copying and adjusting /tmp/Python-3.2/Tools/scripts/2to3 -> build/scripts-3.2
    changing mode of build/scripts-3.2/pydoc3 from 644 to 755

【问题讨论】:

    标签: python python-3.x linux python-3.2


    【解决方案1】:

    首先我想说的是,您正在尝试做的事情是徒劳的。检查:

    所以:

    1. 您正在尝试从年底停止支持的版本“升级”(您的特定风格 (v2.7.15 em>) 去年发布)到已经死了几年的版本

    2. 更多:您正在尝试 v3.2。0 这是该系列的第一个st p>

    快速搜索您发现的错误:

    现在,这可能是也可能不是您的情况的原因。如果是,则有一个修复方法,但您不会从中受益,因为 #2。。

    几个想法:

    • 一般来说,一个软件系列的第一个st 版本可能有更多的错误,因为它没有在“现实世界”中进行太多测试(因为它还没有发布)。如果在其上构建了其他软件(在本例中为其他 Python 3rd 方模块),则出现问题的可能性会增加。作为示例(尽管与当前场景无关),您可以查看[SO]: PyWin32 and Python 3.8.0
    • 您应该使用受支持和维护的 (Python) 版本(例如 v3.8 或 v3 .7),以便您在遇到问题时真正有机会获得帮助
    • 如果由于某些原因(我认为不合逻辑)您需要坚持使用 v3.2,请尝试至少使用最新的 ([Python]: Python-3.2.6.tgz)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多