我想用一个将其称为ld.so参数的快捷方式替换python(符号链接): e.g。
/home/user/my_libc_env/lib/x86_64-linux-gnu/ld-2.17.so /home/user/anaconda2/envs/tf_011g/bin/python2.7
而不是(默认)
/home/user/anaconda2/envs/tf_011g/bin/python2.7
注意:
我需要它作为链接而不是别名,因为我的IDE调试器(pycharm)显式调用了链接。
如果存在
仅使用ln -s
无法工作,因为它不接受参数。 我尝试将其包装为bash脚本而不是,但它也不起作用(从命令行运行正常,但从IDE调试器调用时可以使用SegFault)
还有其他办法吗?
编辑(澄清): 这是我为bash脚本尝试的(从命令行运行正常,但从IDE调试器调用时产生分段错误)
#!/bin/bash
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-7.5/lib64:/usr/local/cuda-8.0/lib64/cuda/lib64:$HOME/my_libc_env/lib/x86_64-linux-gnu/:$HOME/my_libc_env/usr/lib64/:$HOME/my_libc_env/usr/lib/" $HOME/my_libc_env/lib/x86_64-linux-gnu/ld-2.17.so $HOME/anaconda2/envs/tf_011g/bin/python2.7 "${@}"
答案 0 :(得分:0)
您可以通过设置环境变量LD_LIBRARY_PATH
的值来指定查找特定共享库的位置。该值是以冒号分隔的目录名列表;在这种情况下,您需要预先添加特定目录,以便首先检查它。
LD_LIBRARY_PATH=/home/user/my_libc_env/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH /home/user/anaconda2/envs/tf_011g/bin/python2.7
包装器脚本使这更简单,因此需要记住库路径或Python可执行文件的路径。
#!/bin/bash
export LD_LIBRARY_PATH=/home/user/my_libc_env/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH
/home/user/anaconda2/envs/tf_011g/bin/python2.7 "$@"