gpt4 book ai didi

python - 找不到符号 : __PyCodecInfo_GetIncrementalDecoder

转载 作者:行者123 更新时间:2023-12-02 07:17:42 25 4
gpt4 key购买 nike

自从从 Homebrew Python 2.7.11(从 2.7.10 开始)更新后,我突然无法从 PyCharm IDE 控制台测试在 PyPi 上注册我的包。

运行(作为“外部工具”)

python -B setup.py register -r pypitest

我现在明白了

Traceback (most recent call last):
File "setup.py", line 22, in <module>
from setuptools import setup
File "/usr/local/lib/python2.7/site-packages/setuptools/__init__.py", line 12, in <module>
from setuptools.extension import Extension
File "/usr/local/lib/python2.7/site-packages/setuptools/extension.py", line 8, in <module>
from .dist import _get_unpatched
File "/usr/local/lib/python2.7/site-packages/setuptools/dist.py", line 16, in <module>
from setuptools.depends import Require
File "/usr/local/lib/python2.7/site-packages/setuptools/depends.py", line 6, in <module>
from setuptools import compat
File "/usr/local/lib/python2.7/site-packages/setuptools/compat.py", line 17, in <module>
import httplib
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 80, in <module>
import mimetools
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/mimetools.py", line 6, in <module>
import tempfile
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tempfile.py", line 32, in <module>
import io as _io
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/io.py", line 51, in <module>
import _io
ImportError: dlopen(/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder
Referenced from: /usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
Expected in: flat namespace
in /usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so

Process finished with exit code 1

我不知道如何继续。仅当我在 IDE 控制台中执行时才会出现此问题。如果我直接在系统命令行(OS X 上的终端)上执行此操作,则没有问题。

<小时/>OS X 10.11.3;自制Python 2.7.11; PyCharm 5.0.3

最佳答案

tl;dr:通过执行以下操作之一修复此问题:

  • 类型hash -r python,或
  • 注销并登录。

编辑:对我的 related question 的回答清楚地表明这里发生了什么。当您安装新版本的 python 时,您可能需要运行 hash -r python 来告诉 bash 将“缓存”位置重置为 python 可执行文件。

就我而言,我输入的是 python,它位于 /usr/local/bin/python$PATH 上。但是 bash 仍然使用旧的缓存位置/usr/bin/python 。因此,旧的可执行文件被调用,但在 sys.argv[0] 中向 python 提供了路径。这意味着旧的可执行文件正在运行,但新的 sys.executable 值导致加载所有错误的模块(包括 io 模块)。

<小时/>

我也遇到同样的问题。我通过 Python.org 的安装程序安装了 python 2.7.11。奇怪的是,这个问题似乎与当我使用完整路径从 shell 调用它时 OSX 启动 python 与仅使用单词 python 之间的一些细微差别有关。

所以,对我来说,这是可行的(通过完整路径 /usr/local/bin/python 调用 python):

$ which python
/usr/local/bin/python
$ /usr/local/bin/python -c "import io"
$

...但这不是:

$ python -c "import io"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/io.py", line 51, in <module>
import _io
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
Expected in: flat namespace
in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so

因此,作为解决方法,您可以尝试做同样的事情。

在其他地方,我发布了 separate question关于这种令人费解的行为。也许仅以某种方式调用 python 就会调用 2.7.11 可执行文件与 2.7.10 dylib 的一些奇怪组合??

关于python - 找不到符号 : __PyCodecInfo_GetIncrementalDecoder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34386527/

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