Skip to main content
 首页 » 编程设计

python之tensorflow ,Python : ImportError: undefined symbol: _PyUnicode_AsWideCharString

2024年08月19日30shangdawei

在 PyCharm 中使用 tensorflow 时,我不断收到以下错误:

/home/user/tensorflow/bin/python /home/user/PycharmProjects    /TensorPlay/hello.py 
Traceback (most recent call last): 
  File "/home/user/PycharmProjects/TensorPlay/hello.py", line 2, in <module> 
    import tensorflow as tf 
  File "/home/user/tensorflow/lib/python3.5/site-packages/tensorflow/__init__.py", line 24, in <module> 
    from tensorflow.python import * 
  File "/home/user/tensorflow/lib/python3.5/site-packages/tensorflow/python/__init__.py", line 27, in <module> 
    import ctypes 
  File "/usr/lib/python3.5/ctypes/__init__.py", line 7, in <module> 
    from _ctypes import Union, Structure, Array 
ImportError: /home/user/tensorflow/lib/python3.5/lib-dynload/_ctypes.cpython-35m-x86_64-linux-gnu.so: undefined symbol: _PyUnicode_AsWideCharString 
 
Process finished with exit code 1 

hello.py 是这个简单的示例代码:

import tensorflow as tf 
 
node1 = tf.constant(3.0, tf.float32) 
node2 = tf.constant(4.0) 
print(node1, node2) 

PyCharm 检测所有 Tensorflow 元素并自动完成我想要的所有内容。

我还尝试在控制台中运行 virtualenv。 任何与 Python 相关的内容都会导致相同的错误。我尝试用

升级 tensorflow
source ~/tensorflow/bin/activate 
pip3 install --upgrade tensorflow 

也有完全相同的错误(只是文件 pip3 中有错误而不是 hello.py)

有什么建议吗?

编辑: 我想我看到了问题。可能是我的 virtualenv 需要 Python 3.5.3?我对上次升级感到不满,我的 Linux 已升级到 Python 3.5.4 如何在不创建新的 virtualenv 的情况下修复它?我如何才能确保它不会在未来的更新中发生?

请您参考如下方法:

我只能通过删除旧的 virtualenv 并设置一个新的来解决这个问题。