2017-03-26 62 views
1

我想用一个叫做ld.so参数的快捷方式替换python(符号链接): 有没有办法用参数创建一个符号链接? (linux)

/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 

注:

  1. 我需要它作为一个链接,因为我的IDE调试器(pycharm)明确要求的不作为别名链接。

  2. 是否存在

只需使用ln -s是行不通的,因为它没有它应该能够支持额外的命令行参数接受参数。 我试图把它包装成一个bash脚本,而不是,但它不工作,以及(工程命令行确定,但在被称为段错误从IDE调试器)

有另一种方法做这件事?

编辑(澄清): 以下是我试过的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

首先,你知道什么是符号链接吗? – Jdamian

+0

尝试使用'exec',即'LD_LIB ... exec $ HOME/...',看看是否有所作为。 –

+0

@DietrichEpp,谢谢,它不 – yuval

回答

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 "[email protected]" 
+0

谢谢,但我在问题中写道,我已经尝试了这种方法,它没有奏效。 (我会澄清一下,尝试使用LD_LIBRARY_PATH) – yuval

相关问题