gpt4 book ai didi

python - 导入错误 : ephem/_libastro. 所以 undefined symbol :PyUnicodeUCS2_AsUTF8String

转载 作者:太空狗 更新时间:2023-10-30 02:45:17 25 4
gpt4 key购买 nike

我刚刚在 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 的编译方式?

关于python - 导入错误 : ephem/_libastro. 所以 undefined symbol :PyUnicodeUCS2_AsUTF8String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25223993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com