编译 Python 时“make test”失败

编译 Python 时“make test”失败

我在模拟的 Debian 7 ARM 系统上编译了 Python 3.4.1。make testtest_multiprocessing_fork 失败:

FAIL: test_semaphore_tracker (test.test_multiprocessing_fork.TestSemaphoreTracker)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/sources/python3-3.4.1/Lib/test/_test_multiprocessing.py", line 3667, in test_semaphore_tracker
    _multiprocessing.sem_unlink(name2)
AssertionError: OSError not raised

另一个测试 test_io 只是冻结make test.

可能是什么问题呢?我唯一的猜测是我错过了一些先决条件。根据./configure,我的系统中没有这些头文件:

minix/config.h
conio.h
direct.h
ieeefp.h
io.h
process.h
sys/devpoll.h
sys/audioio.h
sys/bsdtty.h
sys/event.h
sys/kern_control.h
sys/loadavg.h
sys/lock.h
sys/mkdev.h
sys/modem.h
sys/sys_domain.h
sys/termio.h
libutil.h
bluetooth.h
bluetooth/bluetooth.h
util.h
sys/endian.h
time.h that defines altzone

答案1

Python的核心语言系统需要要安装某些开发包。 Python 的“包含电池”模块系统中的某些模块需要额外的软件包,但如果您没有安装这些软件包,这些模块将无法在不影响核心语言的情况下进行编译(如果您幸运的话,可以回退到纯Python实现)。不幸的是,这些模块的测试并不总是检查模块可用性并优雅地忽略无法运行的测试。

在尝试编译和测试附加模块之前,您确实应该首先查看目标电子书系统上需要什么。我怀疑您是否在目标系统上需要诸如蓝牙或多处理之类的东西,那么为什么要花时间让它们在交叉开发系统上运行而不使用它们呢?

相关内容