【问题标题】:Changing $PATH in OS X to run most recent version of Python在 OS X 中更改 $PATH 以运行最新版本的 Python
【发布时间】:2010-09-02 21:46:22
【问题描述】:

因此,当 Python2.5 不支持 2.6 时,我更改了 $PATH 以使 Python2.5 与 Django 一起使用。现在我无法通过 Python 安装很多东西,因为我搞砸了很多内部结构。 $PATH 现在不必要地长了,因为当我添加它时我不知道我在做什么。 .profile 不包含我在终端中使用“导出”添加的任何路径。我什至无法安装 virtualenv。在这一点上,我感觉好像我破坏了一切,并想从头开始,而不会丢失所有数据。我已经使用 Time Machine 备份了所有内容,但这将保持与之前相同的设置。

现在是完全没有希望了吗?我是否应该选择使用 Time Machine 以外的其他工具重新安装新的操作系统来备份我的所有信息?或者这很容易解决?

【问题讨论】:

  • 您不必更改 $PATH,只需从命令行执行:defaults write com.apple.versioner.python Version 2.5

标签: python macos path


【解决方案1】:

如果您使用的是 mac osx。那么我的建议是你使用macports。解决方案就在这里。

然后您可以使用 python_select 选择激活适当的版本。

之后你就可以使用 virtualenv 了。这对我很有用。

【讨论】:

  • 工作就像一个魅力。我不再需要 virtualenv 了。谢谢!
【解决方案2】:

为什么不直接编辑(使用您选择的文本编辑器)决定环境中 PATH 设置的“点文件”?在你的 $HOME(可能是/Users/youruserid)中,包括(假设你的 shell 是默认的,bash.bash_profile.bashrc——通常还有一个“系统”/etc/bashrc(这个没有点一;-)。 find ~ -type f -name '.*' -print0 | xargs -0 grep PATH 告诉您主目录和子树中包含字符串 PATH 的所有相关文件(毫无疑问还有更多,例如历史文件和保存的旧点文件副本),并且可以指导您的编辑。请务必注销并重新登录,以确保应用所有相关文件以测试您的更改。

编辑:为了使它完全与 Python 相关;-),这里有一个简单的 Python 方法来确定如何设置路径,以便在所有情况下执行完全相同的命令您现在拥有的路径设置,但没有浪费的重复:

>>> x='''/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/sw/bin:/sw/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/X11R6/bin'''
>>> s = set()
>>> l = list()
>>> for p in x.split(':'):
...   if p in s: continue
...   s.add(p)
...   l.append(p)
... 
>>> print ':'.join(l)
/opt/local/bin:/opt/local/sbin:/sw/bin:/sw/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/X11R6/bin
>>> 

【讨论】:

  • 用户主页$ echo $PATH /opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/ opt/local/sbin:/sw/bin:/sw/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin :/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/X11R6/bin ^这是我的 PATH 变量。这很混乱,对吧?我会试试你给我看的 find 命令。
  • 刚刚尝试了 find 命令,它没有给我任何回报。
  • 你的“PATH”中有很多冗余路径:)。尝试删除它们。
  • 也可以试试cd /etc,然后是grep PATH *。您确实需要控制您的环境,删除重复条目将是朝着正确方向迈出的一步。
  • @Radeux,问题在于找出导致混乱的配置文件——除非你知道它们是什么,否则无法修复它们。 find 中有一个明显的拼写错误,因为我输入了它(在 -print0 之后而不是在 .*!- 之后的右引号),现在进行编辑以修复它,请尝试现在存在的合理版本;- )。
猜你喜欢
  • 1970-01-01
  • 2010-11-25
  • 2014-12-20
  • 1970-01-01
  • 2020-04-21
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
  • 2017-12-14
相关资源
最近更新 更多