【问题标题】:PyCharm cannot find libraryPyCharm 找不到库
【发布时间】:2016-02-22 03:03:28
【问题描述】:

我正在使用 PyCharm 5 在 Ubuntu 中运行 Python 2.7 (Anaconda) 脚本。我的脚本使用import tensorflow 导入了一个模块,但这会导致错误ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory。所以,这个模块似乎需要库libcudart.so.7.0,但是找不到。

现在,我看到这个库在我的机器上/usr/local/cuda-7.0/targets/x86_64-linux/lib。所以,在 PyCharm 中,我去了Settings->Project Interpreters->Interpreter Paths。这有一个路径列表,例如/home/karnivaurus/Libraries/Anaconda/python2.7。然后我将上面提到的包含所需库的路径添加到此列表中。

但是,这并没有解决问题。我仍然收到一条错误消息,告诉我找不到 libcudart.so.7.0。如果我从 shell (python myfile.py) 运行我的脚本,那么它运行良好。

我如何告诉 PyCharm 在哪里可以找到这个库?


我注意到如果我的脚本中有print sys.path,它打印出来的路径与Settings->Project Interpreters->Interpreter Paths 中的路径完全不同...应该相同吗?

【问题讨论】:

  • PyCharm 是否使用与终端相同的 python 运行脚本?那将是第一眼。确保运行配置使用正确的解释器。运行 > 编辑配置。选择您的项目,然后在 Project Interpreter 下,确保您选择了 anaconda python。
  • 是的——我为我的 PyCharm 项目选择了 Anaconda Python,还有我终端中的解释器...
  • 那我不知道。 stackoverflow.com/questions/28390961/…stackoverflow.com/questions/33646541/… 可以帮助您进行进一步的故障排除。

标签: python ubuntu pycharm


【解决方案1】:

Community edition 2019.3以下对我有用

为项目全局设置:

  • 打开File/Settings/Project/Project Interpreter
  • 点击解释器旁边的齿轮图标
  • 选择全部显示
  • 点击右下角带有树形图标的小文件夹
  • 将路径添加到“解释器路径”

【讨论】:

    【解决方案2】:

    虽然其中一些答案是正确的,并且可以工作,但我还没有看到 OP 专门要求什么,这就是为 python 控制台设置环境的地方。这可以在 pycharm 内部完成:

    文件 > 设置 > 构建、执行、部署 > 控制台 > Python 控制台

    在那里的选项中,您会找到定义环境变量的地方。在那里设置 LD_LIBRARY_PATH。

    【讨论】:

    • 这应该是公认的答案。这似乎与我正在寻找的解决方案相似。看起来我面临的问题是我试图从 PyCharms 配置设置对话框中调用预定义的环境变量 $CUDA_HOME/lib。当我更改为完整的 /usr/local/cuda/lib 时,一切都开始工作了。
    • 同意,这似乎是实际答案。在 pycharm 的环境部分中,将 CUDA_HOME 设置为 /usr/local/cuda 也是一个好主意。
    【解决方案3】:

    编辑你的pycharm.desktop,在exec中指定环境变量,如下:

    [Desktop Entry]
    Version=1.0
    Type=Application
    Name=Pycharm
    Exec=env LD_LIBRARY_PATH=:/usr/local/cuda/lib64:/usr/local/cuda/lib64 /home/cwh/software/pycharm-2016.1.4/bin/pycharm.sh
    Icon=/home/cwh/software/pycharm-2016.1.4/bin/pycharm.png
    Name[zh_CN]=Pycharm
    

    所以pycharm 会找到cuda

    【讨论】:

    • 但是,这种方法不适用于远程调试器。
    • @HaoTan 您可以在运行配置中添加 LD_LIBRARY_PATH。
    【解决方案4】:

    我最近使用远程调试器遇到了这个问题,但我相信它仍然是相同的解决方案。我刚刚在 Run > Edit Configurations... 对话框中的 Run/Debug Configuration 选项中的 Environment Variables 部分添加了以下内容:LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

    【讨论】:

    • 我发现在这个对话框中调用预定义的环境变量不起作用。在定义这些环境变量时,我需要使用完整路径。
    • 当我在 Anaconda 环境中安装 TensorFlow 并使用 PyCharm 作为我的 IDE 时,我发现这个解决方案最适合我。谢谢。
    【解决方案5】:

    您是否在项目设置中选择了正确的 Python 解释器? 见here

    我遇到了类似的问题,更改解释器解决了它,而无需创建新图标。

    【讨论】:

      【解决方案6】:

      你的 cuda 库的路径对我来说似乎很奇怪。我希望它是/usr/local/cuda-7.0/lib64/usr/local/cuda-7.0/lib

      您是否遵循所有cuda installation 程序?

      如果您在命令行中输入env,您是否在LD_LIBRARY_PATH 中看到了cuda 的路径?


      从下面的 cmets 更新:

      问题是 PyCharm 是从桌面调用的,并且没有获得正确的环境变量。解决方案是:

      • 从命令行调用,
      • 创建一个脚本来设置环境,然后调用,并在桌面上创建指向该脚本的链接,
      • 或在桌面项上设置环境变量

      【讨论】:

      • 是的,我按照官方的 CUDA 安装说明进行操作。 /usr/local/cuda-7.0/lib64` 中的目录实际上是指向/usr/local/cuda-7.0/targets/x86_64-linux/lib 的符号链接。我不确定为什么要创建该链接,但我没有手动进行。输入env 给我:LD_LIBRARY_PATH=/home/karnivaurus/Libraries/CUDNN-7.0/lib64:/usr/local/cuda-7.0/targets/x86_64-linux/lib:/usr/local/cuda-7.0/lib64。所以需要的目录就在那里(因此我的脚本在从终端运行时可以工作),但是 PyCharm 似乎没有使用这个环境变量。
      • 只是在这里开玩笑,你是从桌面上的图标运行 pycharm 吗?您是否尝试过从所有环境变量设置正确的 shell 调用它?
      • 是的,我从一个图标运行 PyCharm...如果我尝试从 shell 运行它,那么脚本就可以工作了!但我不想不得不这样做......! PyCharm 必须有办法加载这些相同的环境变量...
      • 不错!因此,您可以编写一个设置环境并调用 pycharm 的 shell 脚本,然后将指向该 shell 脚本的链接放在桌面上,或者您可以使用以下方法为图标调用程序设置环境:askubuntu.com/a/144971/471356
      • 它确实解决了这个问题——谢谢——尽管我仍然假设有一个解决方案可以在 PyCharm 中设置库路径。这当然是标准要求……!
      猜你喜欢
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 2022-08-20
      • 2021-12-21
      • 2022-01-21
      • 2023-04-05
      • 2020-01-10
      相关资源
      最近更新 更多