Установка QGIS3 на Mac?

30

Установщик Kyngchaos не находит python3. Я установил python3 с помощью HomeBrew и не находится по адресу/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework/Versions/3.6/bin/python3.6

Как сказать установщику QGIS распознать, что установлен python3?

Ранее я установил GDAL с помощью HomeBrew, поэтому попытался переустановить (или установить другую версию, где бы она ни оказалась), подумав, что это может помочь в этой ситуации, но установщик QGIS3 все еще не может найти python 3.

Ошибка установки - это всплывающее окно, которое появляется, как только программа установки открыта, и говорит: «Python3 QGIS требует Python 3.6».

Для пользователей, не являющихся Mac, большинство, кажется, полагаются на то, что Kyngchaos предоставит установщик для QGIS, и он только что выпустил установщик для v3.

Обновление: ответил на мои вопросы ниже. Не используйте HomeBrew, если вы не знаете достаточно, чтобы указать установщику QGIS / QGIS на правильную версию (которую я, конечно, не знаю), но используйте версию установщика python3, связанную с ReadMe.

Greg
источник
Где находятся установщики Kyngchaos? Я не могу их нигде найти.
Алекс Лейт
Так как он не обновил ссылку, я предположил, что это kyngchaos.com/files/software/qgis/QGIS-3.0.0-1.dmg
Грег
Это еще не продвигается на его веб-странице, не так ли?
Алекс Лейт
2
«QGIS 2.18.15-4» повторяется дважды на kyngchaos.com/software/qgis, и первым должно быть «QGIS-3.0.0-1». Я думаю, что это ошибка копирования и вставки, другими словами, он скопировал старую ссылку и т. Д. И забыл обновить. Как бы я это угадал - не потому, что я когда-либо делал это!
Грег
4
Сегодня (12 марта 2019 года) обновлена ссылка на kyngchaos.com/software/qgis .
Грег

Ответы:

35

НОВОЕ ОБНОВЛЕНИЕ

QGIS3 теперь может быть установлен из osgeoдоморощенного крана, который экономит паршивость с помощью символических ссылок 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более одного раза для всех пакетов, чтобы найти друг друга.

СТАРЫЕ ОБНОВЛЕНИЯ

(Этот метод требует обновления символических ссылок при изменении версий ... т.е. не идеально)

Для тех, кто использует homebrew, возможно, лучше просто использовать символическую ссылку, в противном случае могут возникнуть все виды хаоса. например , официальный питон двоичный изменят ваши ~./bash_profileтак , что python3и pip3больше нет смысла заваривать ...

В моем случае я теперь сделал символическую ссылку на доморощенную версию (в соответствии с обсуждением в ответе, предоставленном @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 через brew и столкнулся с той же трудностью.

Кажется, что работает, чтобы установить официальные двоичные файлы Python, которые устанавливаются в /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.

Метод проб и ошибок, это должно быть сделано до установки 1 Install GDAL Complete.pkgпакета, который в противном случае устанавливается против неправильного python, и QGIS 3 будет жаловаться на отсутствующие пакеты python.

Те, у кого есть время для экспериментов, могут попробовать символические ссылки, чтобы обойти их напрямую, используя brew (или другой) python3.

Сонгололо
источник
Благодарность! Установка python незадолго до «1 Install GDAL Complete.pkg» сделала для меня хитрость и устранила ошибку «модуль osgeo not found».
Хавьер Фахардо
У вас также установлен GDAL homebrew? Я создал символическую ссылку для, pythonно установщик спрашивает, для GDAL2.2чего я установил с homebrew.
Duccio A
В моем случае я не gdalустановил с homebrew. Насколько я понимаю, QGIS напрямую зависит от версии KyngChaos (к сожалению!). Поэтому может потребоваться установить gdal, поставляемый с QGIS, и тогда он может работать.
Сонгололо
1
Я заметил, что установка бинарных файлов для новой версии python3.7 не поддерживается новейшей установкой QGIS! python3.6.6 необходим, и его можно скачать по ссылке, которую вы указали в этом ответе.
Хавьер Фахардо
2
Это может быть очень глупый вопрос, но как только вы установите qgis через homebrew, как вы его запустите? Разобрался: qgis3это команда.
Хуан Франциско Салдарриага
28

Если вы установили Python3 вместе с Homebrew , вы можете использовать символические ссылки для соответствия потребностям установщика (как предложено @shongololo).

Похоже, установщик нуждается Python3 установлен на (спасибо @shongololo) /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.

(Установите Python3, используя Homebrew, чтобы следовать этой части)

Найдите Cellarкаталог на своей машине. Шахта по адресу: /usr/local/Cellar. Затем найдите этот каталог: /usr/local/Cellar/python3/3.x.y_z/Frameworks/Python.framework(где 3.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 /. [Из блога Райана Куллы ])

Evenfire
источник
Спасибо за эту информацию. Я уже исправил установщик по умолчанию. Поскольку мне не нужен Python для чего-то еще, что будет работать для меня. Я вообще предпочитаю использовать Homebrew для согласованности. А у Apple v2 установлена ​​по умолчанию. Были ли компромиссы между использованием двух инсталляторов (Homebrew и одного с сайта python)? Я думаю, что Homebrew будет обновлять python легче. И вы можете легко удалить. Я понятия не имею, как это сделать с другим методом установки. Мне пришло в голову вернуться к версии Homebrew, так как я знаю, как управлять ею.
Грег
@greg homebrew проще в управлении, например, деинсталлирует. Это также сохраняет ваши различные взаимозависимости пакетов довольно хорошо связаны между собой.
Сонгололо
1
@evenfire спасибо за хорошее объяснение. brew info pythonэто удобный способ быстро найти пути к существующим
версиям готового
4
Один хедз-ап, который недавно варил свой напиток, изменил свой по умолчанию pythonна v3, поэтому для тех, кто недавно обновил / обновил свой pythonpython3
домашний напиток
4
Как я могу подключить файл фреймворка с Anaconda Python? (Я не могу найти python.framework в Anaconda Dirs)
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 . Если бы я знал, как связаться с Уильямом Кинжсбери, я бы так и сделал. Он выполняет отличную службу, хотя.

Greg
источник
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. установить зависимости readlineи xzпростой способ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 3.6.0 из qgis.org должен нормально работать, плюс macOS хорошо подготовлена ​​для нескольких версий Python, хорошо играя с системным Python.

Stackless
источник
Для меня это работало лучше, чем установка homebrew, которая была действительно недовольна существующими зависимостями, которые я установил.
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
# 
jmunsch
источник
2
должно хватить только на то, чтобы сначала запустить 2 строки, а затемln -s ~/.pyenv/versions/3.6.5/Python.framework /Library/Frameworks/Python.framework
Алекс Марков
0

Я столкнулся с той же проблемой при установке QGIS на Mac.
Это не удалось, хотя я пытался связать его с другим python, установленным anaconda и т. Д.
Как я решил проблему: скачайте соответствующую версию python в python.org и установите.

Chokurei
источник