【问题标题】:LD_LIBRARY_PATH not recognized in Pycharm (linux)Pycharm(linux)中无法识别LD_LIBRARY_PATH
【发布时间】:2019-03-05 12:33:34
【问题描述】:

我正在尝试从 Pycharm 中的 python 脚本运行名为“Cyclotron”的 Geant4(粒子模拟引擎)可执行文件。当我从命令行执行文件时,该文件运行得非常好,即./Cyclotron

当我尝试使用 subprocess.check_call() 方法执行相同的 bash 命令时,我收到以下错误消息:

./Cyclotron: error while loading shared libraries: libG4zlib.so: 
cannot open shared object file: No such file or directory
Traceback (most recent call last):
  File "/home/nicolas/Geant4/geant4.10.04.p01/main_stuff/cyclotron- 
geant4/main.py", line 17, in <module>
    subprocess.check_call(command.split())
  File "/usr/lib/python3.6/subprocess.py", line 291, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['./Cyclotron']' returned non- 
zero exit status 127.`

这似乎是由于 LD_LIBRARY_PATH 变量在 Pycharm 内部无法识别。例如,运行

import os
print(os.environ.get("LD_LIBRARY_PATH"))

返回None。我看到有人建议在 Run-&gt;Edit Configurations 下添加变量(我已经在默认值下尝试了我的脚本和 Python),但仍然没有运气。

在命令行上,键入 echo $LD_LIBRARY_PATH 返回/home/nicolas/Root/build/lib:/usr/lib/x86_64-linux-gnu:/home/nicolas/Geant4/install/lib

这是我的python代码:

import subprocess
import os

os.chdir("build")

bash_commands = [
    "cmake ..",
    "make -j4",
    "./Cyclotron"
]

for command in bash_commands:
    subprocess.check_call(command.split())

和输出:

/home/nicolas/PycharmProjects/Main/venv/bin/python 
/home/nicolas/Geant4/geant4.10.04.p01/main_stuff/cyclotron-geant4/main.py
-- Configuring done
-- Generating done
-- Build files have been written to: 
/home/nicolas/Geant4/geant4.10.04.p01/main_stuff/cyclotron-geant4/build
[100%] Built target Cyclotron
$LD_LIBRARY_PATH
./Cyclotron: error while loading shared libraries: libG4zlib.so: cannot 
open shared object file: No such file or directory
Traceback (most recent call last):
  File "/home/nicolas/Geant4/geant4.10.04.p01/main_stuff/cyclotron- 
geant4/main.py", line 14, in <module>
    subprocess.check_call(command.split())
  File "/usr/lib/python3.6/subprocess.py", line 291, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['./Cyclotron']' returned non-zero 
exit status 127.

Process finished with exit code 1

我正在使用带有 Python 3.6 解释器的 Ubuntu 18.04、Pycharm 2018。

【问题讨论】:

    标签: pycharm environment-variables


    【解决方案1】:

    由于某种原因,我第二天又试了一次,Pycharm 现在可以看到变量了。我尝试的唯一不同之处是为我的特定 python 脚本勾选Run-&gt;Edit Configurations 下右上角的共享框。即使我后来取消它,变量仍然被识别。当我应用更改时脚本变亮了,就像它从某种状态更改为另一种状态一样,但我不知道我修改了什么。

    【讨论】:

      【解决方案2】:

      我在 Ubuntu 16.04 上遇到了 Pycharm-2018.3 的问题。

      解决办法如下:

      运行 -> 编辑配置 -> 环境 -> Add LD_LIBRARY_PATH picture1

      picture2

      神奇的事情发生了。

      【讨论】:

        猜你喜欢
        • 2017-05-17
        • 2013-03-06
        • 2014-05-21
        • 2021-10-09
        • 2021-11-05
        • 2015-01-06
        • 2016-06-01
        • 2012-07-26
        • 1970-01-01
        相关资源
        最近更新 更多