我想用将其作为 ld.so 参数调用的快捷方式替换 python(符号链接(symbolic link)): 例如
/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 "${@}"
最佳答案
您可以通过设置环境变量 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 "$@"
关于python - 有没有办法创建带有参数的符号链接(symbolic link)? (Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43031638/