已安装库中缺少已编译的cpython文件

时间:2019-01-07 22:25:06

标签: python cpython pypy

我们使用的库依赖于另一个名为Jellyfish的库。该库实现的逻辑是,如果有cpython版本,它将导入该版本。如果没有,它将使用pypy版本。

Pypy存在一个已知问题(参考:https://github.com/jamesturk/jellyfish/issues/46),其中,变音位库的pypy实现与cpython版本不一致。

在同事的虚拟环境中,他们都有安装时创建的文件cjellyfish.cpython-34m.so,但我没有。结果,我的代码的行为与它们的行为不同(我们在此try / except的另一端:https://github.com/jamesturk/jellyfish/blob/master/jellyfish/init.py

我很好奇为什么我的系统没有cjellyfish.cpython-34m.so文件,而其他系统却没有。诚然,这可能是因为我对pip安装过程中发生的事情以及在什么阶段可能会发生编译不很熟悉。

所以我有几个问题,所有问题都可能与之相关: 1)您能想到什么会导致文件无法生成? 2)在编译失败的情况下,我可以找到一个包含错误/日志消息的地方吗? 3)有人可以向我解释或指向某个资源,来了解在生成编译后的pip install somelibrary文件的cpython.so过程中会发生什么吗?

我的系统信息:

  • Ubuntu 18.04
  • 在pyenv中运行的Python 3.4.3
  • 平台版本为#45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018
  • platform.python_implementation()在本地CPython(与我的同事相匹配)
  • platform.python_compiler()是'GCC 7.3.0',与我的同事不同(例如GCC 4.4.7 20120313 (Red Hat 4.4.7-11)

1 个答案:

答案 0 :(得分:0)

1该问题已解决,并且已经解决

2您应该检查pip install --log /tmp/metaphone.txt --ignore-installed metaphone/tmp/metaphone.txt日志文件的输出,以查看是否缺少构建*.so所需的组件