【发布时间】:2012-08-04 06:55:00
【问题描述】:
我正在开发一个调用 python 脚本的 C 共享库。 当我运行应用程序时出现此错误:
Traceback (most recent call last):
File "/home/ubuntu/galaxy-es/lib/galaxy/earthsystem/gridftp_security/gridftp_acl_plugin.py", line 2, in <module>
import galaxy.eggs
File "/home/ubuntu/galaxy-es/lib/galaxy/eggs/__init__.py", line 5, in <module>
import os, sys, shutil, glob, urllib, urllib2, ConfigParser, HTMLParser, zipimport, zipfile
File "/usr/lib/python2.7/zipfile.py", line 6, in <module>
import io
File "/usr/lib/python2.7/io.py", line 60, in <module>
import _io
ImportError: /usr/lib/python2.7/lib-dynload/_io.so: undefined symbol: PyExc_ImportError
如果我尝试从控制台导入模块 io 可以正常工作:
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import galaxy.eggs
>>>
在编译库的过程中,我按照这里的建议使用了这个编译器选项: Embedding python in C, undefined symbol: PyExc_ImportError 此外,我还添加了从 python-config --includes|--libs|--cflags|--ldflags
这里可以找到库http://pastebin.com/348rhBjM的makefile日志
非常感谢,任何帮助将不胜感激。
【问题讨论】:
-
命令应该是这样的:pastebin.com/jSqSnBj5,而不是pastebin.com/348rhBjM,你可以找到整个make log。
-
你有很多警告,你真的应该检查一下!乍一看,最严重的似乎是:
globus_gfs_acl_vm.c:260:33: warning: passing argument 2 of ‘snprintf’ makes integer from pointer without a cast。虽然可能与您的问题无关,但您应该真的尝试尽可能多地修复警告! -
@rdil2503:请将答案标记为已接受,最好是 Trevor 的答案。
标签: c module makefile python-2.7 importerror