python需要调用skimage库,在linux服务器上运行,但是在pycharm中会报错,在终端却可以运行?

深度学习的相关代码,需要调用skimage库,如果在pycharm中运行会报错/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /data5/hongshiyao/anaconda3/envs/UNet/lib/python3.7/site-packages/scipy/_lib/_uarray/_uarray.cpython-37m-x86_64-linux-gnu.so)。但是在终端却可以运行,请问这是为什么?

第1个回答  2024-03-25

这个问题涉及到Python环境配置、库依赖和IDE(如PyCharm)的使用,出现这种情况的原因可能有以下几点:

1. 环境不一致

PyCharm和系统终端可能使用的是两个不同的Python环境。即PyCharm可能没有配置为使用你通过终端能够成功运行代码的相同Python解释器或虚拟环境。

2. 动态链接库(.so文件)版本不匹配

错误信息中提到的libstdc++.so.6: version 'GLIBCXX_3.4.29' not found说明代码运行需要的libstdc++.so.6动态链接库中的GLIBCXX_3.4.29版本在PyCharm指定的环境中找不到,而在终端环境中这个版本是存在的。这通常是因为环境变量的差异,或是因为两个环境下的库路径不同导致的。

解决方案

    确保PyCharm使用正确的Python环境:检查PyCharm项目的配置,确保其使用的Python解释器或虚拟环境与终端中运行成功的环境一致。你可以在PyCharm的“Settings”(或“Preferences”)-> “Project: [项目名]” -> “Project Interpreter”中查看和配置。

    配置环境变量:确保在PyCharm中运行时,环境变量包含了正确的库路径。你可以在PyCharm的运行配置中添加环境变量,或者在Python代码中通过os.environ动态添加。

    更新或安装对应版本的GCC/G++:由于libstdc++.so.6是GCC/G++的一部分,你可能需要在系统上安装或更新GCC/G++到一个包含GLIBCXX_3.4.29版本的版本。这通常涉及到使用系统的包管理器(如apt、yum等)进行安装或更新。

    手动指定动态链接库路径:如果你知道正确版本的libstdc++.so.6文件在系统上的位置,可以通过设置LD_LIBRARY_PATH环境变量来指定动态链接库搜索路径。例如,在终端中运行Python脚本之前,可以使用以下命令:

export LD_LIBRARY_PATH=/path/to/correct/libstdc++:$LD_LIBRARY_PATH

同样,这个设置也可以在PyCharm的运行配置中作为环境变量添加。

    通过上述步骤,你应该能够解决PyCharm中的运行错误,并确保在IDE和终端中都能正常运行你的代码。

    相似回答