python 虚拟环境(pyenv)下 python 调用 C so 报错?

2016-12-25 17:14:48 +08:00
 bin381
环境
osx version:10.11.5
python version:2.7.10

我编译一个 c 文件:
gcc -fPIC test.c -shared -lpython2.7 -L /usr/lib/python2.7/ -I /usr/include/python2.7/ -o test.so

然后我得到了一个 test.so

如果在系统环境下的 python 执行 import test 是没有问题的。
但是如果在 python 虚拟环境下(pyenv , python 版本是一样的), import test 就会报错

Fatal Python error: PyThreadState_Get: no current thread
[1] 97703 abort python
2268 次点击
所在节点    Python
5 条回复
phrack
2016-12-25 20:30:50 +08:00
我本来还想等其他大神提出看法呢。。。等了这么久没人答。。。

你的信息不是很足,可以多提供一点。

import 如果没有找到 module 不会报 fatal error 的,所以你这里的问题不是 Python 没有找到 test 这个模块,而是其他的问题。
izoabr
2016-12-25 21:33:49 +08:00
我怎么记得 test 是个保留字呢
glogo
2016-12-26 03:32:13 +08:00
可以把 test.py 的内容列出来看下
bin381
2016-12-26 10:10:41 +08:00
@phrack 我也没有什么信息可以提供了。主要是在自带的终端下是可以 import 的,但是 active 一个 pyenv 之后, import 就不成功了。我试过在 Linux 上编译,并没有出现这样的情况。自己也百思不得其解
bin381
2016-12-26 10:11:12 +08:00
@izoabr 跟 test 没有关系,我换了个别的 module name 也是不行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/330035

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX