python – 如何通过’realpath’找到我的符号链接?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 如何通过’realpath’找到我的符号链接?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2841字,纯文字阅读大概需要5分钟。
内容图文
![python – 如何通过’realpath’找到我的符号链接?](/upload/InfoBanner/zyjiaocheng/739/63daa730de2040f8805fca6211b2a30e.jpg)
我使用bash作为我的shell在MacOSX上.我有符号链接,像这样创建:
ln -s /usr/bin/python python2
我有一个使用python2的包,我想在我当前的工作目录中创建一个符号链接到/usr/bin/python,它实际上是python2.当我从命令行执行python2时,我收到此错误:
python2: realpath couldn't resolve "/usr/bin/python2"
但是像这样调用它./python2正确地解析了路径.我的路径有.在里面.事实上,我修改了它,仅用于测试.在里面.
我该如何解决这个问题?谢谢!
上下文
以下一些建议的解决方案对我不起作用.我试图将我的问题提炼为尽可能集中和简短,以便人们不会淹没在文本的海洋中,但显然我需要提供更多的背景.
我正在尝试在我从git克隆的包上进行开发.原始软件包git-multimail是在某些Linux版本上开发的(我猜Ubuntu).我一直在尝试修改它,以便能够在MacOSX上使用它和它的测试套件,尽可能少的修改.这就是为什么一些提出的解决方案不理想的原因:
>以root身份,在/usr/bin /中创建一个python2符号链接.我正在寻找一个不需要这个的解决方案.这在开始时是一个明显的选择,但我想要一个尽可能少地修改主机系统的解决方案.这就是为什么我想在当前工作目录中创建一个临时符号链接,将CWD(即.)添加到我的路径,然后在完成时将其销毁(即符号链接).
>创建一个包装器脚本,用现有的python调用python脚本.这个问题是,大多数测试套件使用实际的script_files作为可执行文件,这取决于shebang以找到正确的执行环境.这意味着要大大编辑测试套件.在这种情况下,(参见下面的测试框架的片段),我将不得不为每个.py文件添加一个包装器;此外,用户/开发人员必须知道使用该软件包的不同规则,具体取决于他们所使用的系统(即在MacOSX上确保您不使用python文件而不通过包装器调用它们或显式调用/usr/bin/python file.py).
#! /bin/sh
D=$(cd $(dirname "$0") && pwd)
MULTIMAIL="$D/../git-multimail/git_multimail.py"
POST_RECEIVE="$D/../git-multimail/post-receive"
TESTREPO=$("$D/create-test-repo")
HOME="$D"
XDG_CONFIG_HOME="$D"
GIT_CONFIG_NOSYSTEM=1
export HOME XDG_CONFIG_HOME GIT_CONFIG_NOSYSTEM
cd $TESTREPO
test_email() {
REFNAME="$1"
OLDREV="$2"
NEWREV="$3"
echo "$OLDREV" "$NEWREV" "$REFNAME" | USER=pushuser "$MULTIMAIL"
}
>将所有python2引用更改为python.自述文件建议这样做,但这有效地使版本控制无用,因为系统将更改视为新版本,而事实上它并非(语义上).
我一直在使用(3),但我正在努力寻找更好的解决方案.我愿意接受这就是事情的方式(即没有一种合适的方式将’python2’指向/usr/bin/python,它是可移植且不显眼的,而不需要对测试套件和实际框架进行大量更改).
解决方法:
如果需要解析(或调查)符号链接,可以使用平台无关的bash库’realpath-lib’.默认情况下,它模拟readlink并可在Mac或Unix上运行.它可以在Github或Bitbucket找到,它是免费的.
但听起来你想从你的本地(工作)目录中做python2(而不是./python2).也许可以在.bashrc中使用别名来执行此操作,否则您将需要将工作目录(包含符号链接)添加到PATH环境变量中.这也可以仅针对当前会话或针对将来会话的.bashrc文件内部进行.这可以是仅针对特定用户的解决方案.
另一个适用于所有用户的选项是在路径上的另一个目录中创建python2符号链接到/usr/bin/python,比如在/usr/local/bin中.也许是这样的:
sudo ln -s /usr/bin/python /usr/local/bin/python2
然后任何用户或脚本都应该找到python或python2命令.当然,此选项需要管理员(root)权限才能安装.
内容总结
以上是互联网集市为您收集整理的python – 如何通过’realpath’找到我的符号链接?全部内容,希望文章能够帮你解决python – 如何通过’realpath’找到我的符号链接?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。