如何链接home brew python版本并将其设置为默认值

时间:2013-10-13 01:23:21

标签: python macos homebrew

我刚从MacPorts切换到HomeBrew。在安装了所有必需的XCode版本和其他软件之后,我尝试使用自制软件安装python:我认为它已成功安装,但是当我which python时,它仍然显示2.7.3我认为是Mountain Lion附带的版本。

which python
/usr/local/bin/python

python --version
Python 2.7.3

所以我尝试重新安装

brew install python --framework --universal
Warning: python-2.7.5 already installed, it's just not linked

但是它说python 2.7.5已经安装而没有链接,我试着做brew link python

这导致我跟随消息,所以我不知道我应该做什么:

链接/usr/local/Cellar/python/2.7.5 ...警告:无法链接python。解除连结...

Error: Could not symlink file: /usr/local/Cellar/python/2.7.5/bin/smtpd2.py
Target /usr/local/bin/smtpd2.py already exists. You may need to delete it.
To force the link and overwrite all other conflicting files, do:
  brew link --overwrite formula_name

To list all files that would be deleted:
  brew link --overwrite --dry-run formula_name

10 个答案:

答案 0 :(得分:29)

brew install python3安装python3之后 我收到了错误:

Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks

输入brew link python3后,错误为:

Linking /usr/local/Cellar/python/3.6.4_3... Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks

解决问题:

sudo mkdir -p /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/*
brew link python3

在此之后,我可以通过输入python3

打开python3

(来自https://github.com/Homebrew/homebrew-core/issues/20985

答案 1 :(得分:7)

在终端中,输入:

brew link python

答案 2 :(得分:7)

如果您使用

brew install python
之前的

你有

brew info python
/usr/local/Cellar/python/2.7.11

python -V
Python 2.7.10

所以

brew unlink python && brew link python

并打开一个新的终端shell

python -V
Python 2.7.11

答案 3 :(得分:4)

我认为您必须准确了解要与brew link python命令链接的版本:

brew link python 3

它会给你一个错误:

Linking /usr/local/Cellar/python3/3.5.2... 
Error: Could not symlink bin/2to3-3.5
Target /usr/local/bin/2to3-3.5
already exists. 

您可能想将其删除:

rm '/usr/local/bin/2to3-3.5'

强制链接并覆盖所有冲突的文件:

brew link --overwrite python3

列出所有要删除的文件:

brew link --overwrite --dry-run python3

但你必须复制/粘贴命令以强制链接:

brew link --overwrite python3

我认为您必须安装版本(较新版本)。

答案 4 :(得分:4)

在OS X High Sierra上,我必须这样做:

sudo install -d -o $(whoami) -g admin /usr/local/Frameworks
brew uninstall --ignore-dependencies python
brew install python
python --version # should work, returns 2.7, which is a Python thing (it's weird, but ok)

归功于https://gist.github.com/irazasyed/7732946#gistcomment-2235469

我认为它比递归chowning / usr / local目录更好,但这可以解决其他问题;)

答案 5 :(得分:2)

默认情况下,

brew切换到python3,所以如果你仍想将python2设置为默认的bin python,那么运行:

brew unlink python && brew link python2 --force

答案 6 :(得分:2)

您可以按照以下步骤操作。

$ python3 --version  
$ brew unlink python@2
$ brew link python3   
$ python3 --version   

All steps

答案 7 :(得分:1)

这个答案是在Mac OS X El Capitan上将Python 2.7.10升级到Python 2.7.11。在终端类型:

brew unlink python

在终端

之后输入
brew install python

答案 8 :(得分:0)

我的问题是我有很多不同版本的python,因此即使我做了brew链接,它也会打开一个不同的python3.7。我做了以下附加步骤,将其设置为链接后

的默认值

首先,打开设置python路径的文档

 nano ~/.bash_profile

然后出现类似这样的内容:

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH

这里的事情是我的brew框架Python不在 Library 文件夹中!因此,我更改了python 3.7的框架,在系统中如下所示

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/usr/local/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

更改并保存文件。 重新启动计算机,然后输入python3.7,我得到安装用于brew的python。

不确定我的案子是否适用于所有人,但值得一试。不确定框架路径是否对每个人都相同,请在尝试之前确定。

答案 9 :(得分:-1)

我使用这些命令来解决它。

submitForm(value: any)
{
  // this.toasterService.pop('info',' Loading...', '' );
  this._loginservice.login(value).subscribe(
    user => {
    if(user.success) // ERROR here
      {
      }
    });
}