[英]DSX Python import error : undefined symbol: PyUnicodeUCS2_AsUTF8String
[英]import error: ephem/_libastro.so undefined symbol: PyUnicodeUCS2_AsUTF8String
我刚刚在pyenv中使用pip成功安装了PyEphem。 但是,在导入时我会收到:
ImportError:/python2.7/site-packages/ephem/_libastro.so:undefined symbol:PyUnicodeUCS2_AsUTF8String
在环顾四周时,我看到它提到某些模块是针对Unicode构建的“针对Python”并建议重新编译。 我是Python和Ubuntu 14.04的新手,虽然我相信这是我的问题的答案,但我不知道重新编译意味着什么或如何做。
符号PyUnicode_AsUTF8String(value)
在_libastro.c
使用一次,并在我的系统中在文件中定义:
/usr/include/python2.7/unicodeobject.h
在那里它可以有以下两种方式之一:
#ifndef Py_UNICODE_WIDE
# ...
# define PyUnicode_AsUTF8String PyUnicodeUCS2_AsUTF8String
# ...
#else
# ...
# define PyUnicode_AsUTF8String PyUnicodeUCS4_AsUTF8String
您的错误消息听起来好像您的系统Python被编译为使用4字节宽的Unicode字符串(因此链接器无法在其中找到此函数的UCS2版本),但是自动编译的PyEphem版本在你的系统上运行pip install
某种程度上混淆并取消设置Py_UNICODE_WIDE
,从而生成了预期为UCS2符号的C代码。
您的系统上是否有几个Python编译版本,其中一个版本的Unicode设置可能会意外地影响系统Python的编译方式?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.