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安装程序在哪里?我在任何地方都找不到。

由于他尚未更新链接,因此我猜它是kyngchaos.com/files/software/qgis/QGIS-3.0.0-1.dmg

尚未在他的网页上宣传吗?

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

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

#1 楼

新更新

QGIS3现在可以从osgeo的自制水龙头安装,这样可以避免使用python符号链接的麻烦... ie

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,才能使所有软件包相互查找。


OLD UPDATE

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

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

在我的情况下,我现在将自制版本链接了(沿着答案中的讨论内容) @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用户使用此方法!)

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

似乎可行的方法是安装安装到/Library/Frameworks/Python.framework/Versions/3.6/bin/python3的官方python二进制文件。

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

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

评论


谢谢!在“ 1 Install GDAL Complete.pkg”之前安装python为我解决了问题,并解决了“找不到模块osgeo”错误。

–哈维尔·法哈多(Javier Fajardo)
18年3月13日在18:35

GDAL还安装了自制软件吗?我为python创建了符号链接,但安装程序要求使用自制软件安装的GDAL2.2。

– Duccio A
18年5月18日在10:32

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

–ongololo
18年5月18日在13:26

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

–哈维尔·法哈多(Javier Fajardo)
18年7月18日在15:06

这可能是一个非常愚蠢的问题,但是一旦通过自制软件安装了qgis,如何运行它?弄清楚了:qgis3是命令。

– Juan Francisco Saldarriaga
18年8月20日在17:13



#2 楼

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

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

在计算机上找到/Library/Frameworks/Python.framework/Versions/3.6/bin/python3目录。我的位于:Cellar
然后找到此目录:/usr/local/Cellar(其中/usr/local/Cellar/python3/3.x.y_z/Frameworks/Python.framework是您要使用的python3版本,对我来说是3.x.y_z)。这是我们要安装程序查找的目录。我们需要通过建立符号链接从安装程序正在查看的目录链接到该目录。

使用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

这对我有用。

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

评论


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

–格雷格
18年3月13日在19:59



@greg homebrew更容易管理,例如卸载。它还可以使各种程序包之间的相互依存关系保持良好的相互联系。

–ongololo
18年3月14日在9:34

@evenfire谢谢你的解释。 brew info python是一种快速找到现有Brewed python安装路径的便捷方法

–ongololo
18 Mar 14'9:36



近期酿造的通知的默认Python更改为v3,因此对于那些最近更新/升级其自制软件的用户,上述路径将包含python而不是python3

–ongololo
18年3月14日在10:13

如何将框架文件与anaconda python连接? (我在蟒蛇目录中找不到python.framework)

– natsuapo
18 Mar 15'在14:16

#3 楼

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

这似乎与这里的注释矛盾:

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

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

#4 楼

pyenv和符号链接的另一个版本,仅出于依赖性而使用brew

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



克隆pyenv存储库(可能将~/.pyenv调整为/path/to/pyenv

git clone https://github.com/pyenv/pyenv.git ~/.pyenv


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



重新启动shell

exec "$SHELL"



使用readline轻松安装依赖项xzbrew

brew install readline xz



安装包含Python.framework的Python 3.6.x(也许适应版本号)

env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.6.8



在将新的Python版本添加到pyenv后始终重新哈希化

pyenv rehash



符号链接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
19年7月16日在3:35

#5 楼

使用pyenvbrew的版本:

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
# 


评论


仅运行前两行,然后运行ln -s〜/ .pyenv / versions / 3.6.5 / Python.framework /Library/Frameworks/Python.framework就足够了

– Alex Markov
18年7月4日在8:53



#6 楼

在Mac上安装QGIS时,我遇到了同样的问题。
虽然我尝试将其与anaconda安装的其他python软链接,但仍然失败。
解决问题的方法:在Windows中下载相关的python版本python.org并安装。