在Mac上安装QGIS3?


30

Kyngchaos安装程序未找到python3。我使用HomeBrew安装了python3,但位于/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework/Versions/3.6/bin/python3.6

如何告诉QGIS安装程序识别已安装python3?

我以前曾使用HomeBrew安装GDAL,因此尝试重新安装(或在可能结束的地方安装其他版本),认为这可能有助于解决这种情况,但QGIS3安装程序仍然找不到python 3。

安装错误是在安装程序打开后弹出的错误消息,提示“ python3 QGIS需要Python 3.6”。

对于非Mac用户,大多数人似乎都依赖Kyngchaos提供QGIS安装程序,而他刚刚发布了v3安装程序。

更新:在下面回答了我自己的问题。除非您有足够的知识将QGIS安装程序/ QGIS指向正确的版本(我当然不是),否则不要使用HomeBrew,而要使用自述文件中链接到的python3安装程序版本。


Kyngchaos安装程序在哪里?我在任何地方都找不到。
Alex Leith

由于他尚未更新链接,所以我猜它应该是kyngchaos.com/files/software/qgis/QGIS-3.0.0-1.dmg
Greg,

它不在他的网页上宣传吗?
亚历克斯里斯

2
kyngchaos.com/software/qgis上重复两次“ QGIS 2.18.15-4” ,第一个应该是“ QGIS-3.0.0-1”。我认为这是复制和粘贴错误,换句话说,他复制了旧链接等,却忘记了更新。我怎么猜这个-不是因为我曾经做过!
格雷格

4
今天(2019年3月12日),kyngchaos.com/software/qgis上的链接已更新。
格雷格

Answers:


35

新更新

现在可以从osgeo的自制水龙头安装QGIS3,从而避免了使用python符号链接的麻烦。

brew tap osgeo/osgeo4mac
brew install qgis

然后键入qgis要启动的终端,然后固定码头菜单图标以简化将来的启动。

请注意,安装控制台日志还将提供有关如何符号链接qgis到应用程序目录的示例。

由于当前的一些问题,可能有必要ulimit -n 1024从终端运行此Too many open files @ rb_sysopen - /usr/local/var/homebrew/locks/xmlto.formula.lock错误的解决方法。您可能还需要brew install qgis多次运行才能使所有软件包相互找到对方。

旧更新

(此方法需要在版本更改时更新符号链接...即不理想)

对于那些使用自制软件的人,最好使用符号链接,否则可能会造成各种破坏。例如,官方Python二进制文件将修改~./bash_profile,以便python3pip3不再指向酿造...

就我而言,我现在已经将自制版本链接到了(与@Evenfire提供的答案中的讨论类似):

sudo ln -s /usr/local/Cellar/python/3.6.5/Frameworks/Python.framework /Library/Frameworks/Python.framework

然后QGIS3抱怨缺少某些python软件包,可以使用pip3进行安装,例如

pip3 install owslib PyYaml psycopg2 jinja2 pygments plotly

它可能还会抱怨gdal,就我而言,我只是使用brew:

brew install gdal

原版的

(不建议酿酒用户使用此方法!)

我还通过brew安装了python3,并且遇到了同样的困难。

似乎什么工作是安装官方的Python二进制其安装到/Library/Frameworks/Python.framework/Versions/3.6/bin/python3

从试验和错误的角度出发,这必须在1 Install GDAL Complete.pkg安装软件包之前完成,否则将针对错误的python安装,而QGIS 3将抱怨缺少python软件包。

那些有时间进行实验的人可以想象可以尝试使用符号链接直接使用brew(或其他)python3解决问题。


谢谢!在“ 1 Install GDAL Complete.pkg”之前安装python帮了我大忙,并解决了“找不到模块osgeo”错误。
哈维尔·法哈多

您还安装了GDAL homebrew吗?我为创建了符号链接,python但安装程序要求使用进行GDAL2.2安装homebrew
Duccio A

就我而言,我没有gdal安装自制软件。我的理解是QGIS特别取决于KyngChaos的版本(不幸的是!)。因此,可能需要安装QGIS随附的gdal,然后它才能工作。
songololo

1
我注意到最新的QGIS安装程序不支持为较新的python3.7安装二进制文件!python3.6.6是必需的,可以从您在此答案中提供的链接下载。
哈维尔·法哈多

2
这可能是一个非常愚蠢的问题,但是一旦通过自制程序安装了qgis,如何运行它?想通了:qgis3是命令。
Juan Francisco Saldarriaga

28

如果您已将Python3与Homebrew一起安装,则可以使用符号链接来满足安装程序的需求(如@shongololo所建议)。

看来,安装程序需要在(感谢@shongololo):安装Python3 /Library/Frameworks/Python.framework/Versions/3.6/bin/python3

(使用Homebrew安装python3来遵循这一部分)

Cellar在您的计算机上找到目录。我的位置是:/usr/local/Cellar。然后找到以下目录:/usr/local/Cellar/python3/3.x.y_z/Frameworks/Python.framework3.x.y_z您要使用的python3版本在哪里,对我来说是3.6.4_2)。这是我们要安装程序查找的目录。我们需要通过建立符号链接从安装程序正在查看的目录链接到该目录。

使用ln命令(ln -s TARGET_FILE_TO_LINK_TO LINK_NAME): ln -s /usr/local/Cellar/python3/3.x.y_z/Frameworks/Python.framework /Library/Frameworks/Python.framework可以解决问题。您当然需要sudo

这对我有用。

(“酒窖”是您所有“桶”的去处。Homebrew将软件包安装到他们自己的目录(在酒窖中),然后将其文件符号链接到/ usr / local /。(来自Ryan Kulla的博客))


感谢您提供此信息。我已经使用“默认”安装程序进行了修复。由于我不需要Python就能使用对我有用的其他东西。我通常更喜欢使用Homebrew来保持一致性。苹果默认安装了v2。在使用两个安装程序(Homebrew和来自python站点的一个安装程序)之间是权衡的吗?我想Homebrew将使python更新更加容易。而且您可以轻松卸载。我不知道如何使用其他安装方法。因为我知道如何管理它,所以让我考虑回到Homebrew版本。
格雷格

@greg homebrew易于管理,例如卸载。它还可以使您的各种程序包相互依赖关系保持良好的互连。
songololo

1
@evenfire感谢您的解释。brew info python是快速找到现有酿造的python安装路径的便捷方法
songololo

4
单挑的brew最近将其默认值更改python为v3,因此对于那些最近更新/升级其自制软件的人,上述路径将包含python而不包含这些内容python3
songololo

4
如何将框架文件与anaconda python连接?(我在anaconda dirs中找不到python.framework)
natsuapo,

5

我通过QGIS安装程序随附的链接访问https://www.python.org/downloads/并以此方式安装了python3。然后,QGIS安装程序很高兴。

这似乎与此处的评论相矛盾:

“因为QGIS链接了python库,所以您必须安装python.org Python 3.6。您不能替代另一个python 3安装。很抱歉,就是这样。”

发表在http://www.kyngchaos.com/blog/2018/20180315_qgis_3_must_use_python.org_python_3。如果我知道如何联系威廉·肯格斯伯里,我会的。不过他正在提供出色的服务。


4

pyenv和符号链接的另一个版本,brew仅用于依赖项。

推荐的安装位置pyenv~/.pyenv$HOME/.pyenv),但可以是任何位置。

  1. 克隆pyenv存储库(可能适用~/.pyenv/path/to/pyenv

    git clone https://github.com/pyenv/pyenv.git ~/.pyenv
  2. 设置pyenv~/.bash_profile(也许适应$HOME/.pyenv/path/to/pyenv,要知道,第三行必须留下的最后一个.bash_profile,甚至在未来的更新)

    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
    echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
  3. 重新启动外壳

    exec "$SHELL"
  4. 安装依赖项readlinexz简单的方法brew

    brew install readline xz
  5. 安装包含的Python 3.6.x Python.framework(可能会修改版本号)

    env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.6.8
  6. 在将新的Python版本添加到 pyenv

    pyenv rehash
  7. 符号链接 Python.framework

    sudo ln -s $(pyenv root)/versions/3.6.8/Python.framework /Library/Frameworks/Python.framework

现在,来自qgis.org的QGIS 3.6.0安装程序应该可以正常运行,而且macOS已经为多个Python版本做好了充分的准备,可以与系统的Python很好地配合使用。


这对我来说比自制软件更好,后者对我已经安装的现有依赖项实在不满意。
MattyB

3

使用pyenv和的版本brew

brew install pyenv
env PYTHON_CONFIGURE_OPTS="--enable-framework CC=clang" pyenv install 3.6.5
sudo ln -s /Users/$USER/.pyenv/versions/3.6.5/Python.framework/Versions/3.6 /Library/Frameworks/Python.framework/Versions/3.6
sudo cp -R /Users/$USER/.pyenv/versions/3.6.5/Python.framework/Versions/3.6 /Library/Frameworks/Python.framework/Versions/3.6
sudo cp -r /Users/$USER/.pyenv/versions/3.6.5/lib/python3.6/lib-dynload/ /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload
sudo cp /Users/$USER/.pyenv/versions/3.6.5/lib/python3.6/lib-dynload/_struct.cpython-36m-darwin.so /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload/_struct.cpython-36m-darwin.so
# 

2
仅运行前两行就足够了,然后ln -s ~/.pyenv/versions/3.6.5/Python.framework /Library/Frameworks/Python.framework
亚历克斯·马可夫

0

在Mac上安装QGIS时遇到相同的问题。
它失败了,尽管我尝试将其与anaconda等安装的其他python软链接。
解决问题的方式:在python.org中下载相关的python版本并安装。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.