该符号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 的编译方式?