首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MacPorts说当运行“”时我还有Python2.7

MacPorts说当运行“”时我还有Python2.7
EN

Stack Overflow用户
提问于 2017-08-01 08:10:03
回答 1查看 364关注 0票数 4

在指示MacPorts切换到Python3.4之后,python --version仍然输出2.7.10。请注意,“哪个python”显示/opt/local/bin在我的路径/usr/bin/前面:

代码语言:javascript
复制
$ which python
/opt/local/bin/python
$ python --version
Python 2.7.10
$ ls -l /opt/local/bin/python
lrwxr-xr-x  1 root  wheel  24 Aug  1 10:00 /opt/local/bin/python -> /opt/local/bin/python2.7
$ sudo port select --list python
Available versions for python:
    none
    python26-apple
    python27 (active)
    python27-apple
    python34
$ sudo port select --set python python34
Selecting 'python34' for 'python' succeeded. 'python34' is now active.
$ which python
/opt/local/bin/python
$ python --version
Python 2.7.10
$ ls -l /opt/local/bin/python
lrwxr-xr-x  1 root  wheel  24 Aug  1 10:00 /opt/local/bin/python -> /opt/local/bin/python3.4

注意符号链接是如何改变的,但是声明的版本没有改变。怎么回事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-01 21:59:09

tl:运行hash -r

出于速度上的原因,shell保存了一个缓存,说明当您在shell中键入python时需要运行哪些可执行文件。

考虑没有这样的缓存shell必须做什么:对于输入的每个命令(这不是绝对路径),shell必须执行以下操作:

  1. 检查$PATH中的条目,并对每个条目进行检查
  2. 发出stat(2)系统调用,以测试命令是否存在于当前搜索的目录中。请记住,这可能涉及缓慢的旋转磁盘,甚至网络文件系统,回到最初开发shell时。

为了加快速度,大多数shell只对每个命令执行一次,直到更改了任何一个$PATH,或者手动告诉shell删除缓存(例如,在bash中使用hash -r,在其他shell中使用rehash )。

不过,对我来说,一些shell也缓存了符号链接,这是个新闻。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45432353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档