Instalujesz QGIS3 na komputerze Mac?

30

Instalator Kyngchaos nie znajduje Python3. Zainstalowałem Python3 za pomocą HomeBrew i nie znajduje się na/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework/Versions/3.6/bin/python3.6

Jak mam powiedzieć instalatorowi QGIS, aby rozpoznał, że Python3 jest zainstalowany?

Wcześniej instalowałem GDAL za pomocą HomeBrew, więc spróbowałem ponownie zainstalować (lub zainstalować inną wersję, gdziekolwiek by się nie skończyło), myśląc, że może to pomóc w tej sytuacji, ale instalator QGIS3 nadal nie może znaleźć Pythona 3.

Błąd instalacji to wyskakujące okienko, które pojawia się, gdy tylko instalator jest otwarty i mówi „python3 QGIS wymaga Pythona 3.6”.

W przypadku użytkowników innych niż Mac większość wydaje się polegać na Kyngchaos, który zapewnia instalator dla QGIS, a on właśnie wypuścił instalator dla v3.

Aktualizacja: odpowiedziałem na moje własne pytania poniżej. Nie używaj HomeBrew, chyba że wiesz wystarczająco dużo, aby wskazać instalatorowi QGIS / QGIS odpowiednią wersję (z pewnością tego nie robię), ale użyj wersji instalatora python3, do której link znajduje się w pliku ReadMe.

Greg
źródło
Gdzie są instalatorzy Kyngchaos? Nigdzie nie mogę ich znaleźć.
Alex Leith,
Ponieważ nie zaktualizował linku, zgadłem
Greg
Nie jest jeszcze promowany na jego stronie, prawda?
Alex Leith,
2
„QGIS 2.18.15-4” powtarza się dwukrotnie na stronie kyngchaos.com/software/qgis, a pierwszy powinien mieć postać „QGIS-3.0.0-1”. Myślę, że to błąd kopiowania i wklejania, innymi słowy, skopiował stary link itp. I zapomniał zaktualizować. Jak bym to odgadł - nie dlatego, że kiedykolwiek to zrobiłem!
Greg
4
Dzisiaj (12 marca 2019 r.) Łącze na stronie kyngchaos.com/software/qgis zostało zaktualizowane.
Greg

Odpowiedzi:

35

NOWA AKTUALIZACJA

QGIS3 można teraz zainstalować z osgeokranu homebrew, co oszczędza zbędnego korzystania z dowiązań symbolicznych python ...

brew tap osgeo/osgeo4mac
brew install qgis

Następnie wpisz qgisterminal, aby uruchomić, a następnie przypnij ikonę menu dokowania, aby uprościć uruchamianie w przyszłości.

Pamiętaj, że dzienniki konsoli instalacyjnej dostarczą również przykładu, jak dowiązać symbolicznie qgisdo katalogu aplikacji.

Z powodu niektórych bieżących problemów może być konieczne uruchomienie ulimit -n 1024z terminala jako obejście Too many open files @ rb_sysopen - /usr/local/var/homebrew/locks/xmlto.formula.lockbłędu. Być może trzeba będzie uruchomić brew install qgiswięcej niż jeden raz, aby wszystkie pakiety mogły się znaleźć.

OLD UPDATE

(Ta metoda wymaga aktualizacji dowiązań symbolicznych, gdy zmieniają się wersje ... tzn. Nie jest idealna)

Dla tych, którzy używają homebrew, prawdopodobnie lepiej jest po prostu użyć dowiązania symbolicznego, w przeciwnym razie mogą pojawić się wszelkiego rodzaju spustoszenia. np oficjalna binarny Python zmodyfikować ~./bash_profiletak, python3a pip3nie punkt parzyć ...

W moim przypadku dowiązałem teraz wersję homebrew (zgodnie z dyskusją w odpowiedzi udzielonej przez @Evenfire):

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

Następnie QGIS3 narzekał, że brakuje niektórych pakietów Pythona, które można zainstalować za pomocą pip3, np

pip3 install owslib PyYaml psycopg2 jinja2 pygments plotly

Może również narzekać gdal, w moim przypadku po prostu użyłem naparu:

brew install gdal

ORYGINALNY

(Ta metoda nie jest zalecana dla użytkowników naparu!)

Mam również zainstalowany Python3 przez brew i mam taką samą trudność.

Co wydaje się działać, to zainstalować oficjalne binaria Pythona , które instalują się /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.

Z prób i błędów należy to zrobić przed 1 Install GDAL Complete.pkgzainstalowaniem pakietu, który w przeciwnym razie instaluje się na niewłaściwym pythonie, a QGIS 3 będzie narzekać na brakujące pakiety pythona.

Ci, którzy mają czas na eksperymentowanie, mogliby prawdopodobnie spróbować dowiązań symbolicznych, aby ominąć bezpośrednio przy użyciu brew (lub innego) python3.

songololo
źródło
Dzięki! Instalacja Pythona tuż przed „1 Install GDAL Complete.pkg” załatwiła sprawę i rozwiązała błąd „moduł osgeo nie został znaleziony”.
Javier Fajardo
Czy masz już zainstalowany GDAL homebrew? Utworzyłem dowiązanie symboliczne, pythonale instalator pyta o to, z GDAL2.2czym zainstalowałem homebrew.
Duccio A
W moim przypadku nie gdalzainstalowałem z Homebrew. Rozumiem, że QGIS zależy konkretnie od wersji KyngChaos (niestety!). Może więc być konieczne zainstalowanie gdal dostarczonego z QGIS, a wtedy może działać.
songololo,
1
Zauważyłem, że instalowanie plików binarnych dla nowszego python3.7 nie jest obsługiwane przez najnowszy instalator QGIS! Python3.6.6 jest konieczny i można go pobrać z linku podanego w tej odpowiedzi.
Javier Fajardo
2
To może być bardzo głupie pytanie, ale jak już zainstalowałeś qgis przez homebrew? Zrozumiałem: qgis3to polecenie.
Juan Francisco Saldarriaga,
28

Jeśli zainstalowałeś Python3 z Homebrew , możesz użyć dowiązań symbolicznych, aby spełnić wymagania instalatora (jak sugeruje @shongololo).

Wydaje się, instalator musi Python3 zainstalowane (dzięki @shongololo) /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.

(Zainstaluj Python3 za pomocą Homebrew, aby śledzić tę część)

Znajdź Cellarkatalog na swoim komputerze. Kopalnia jest pod adresem: /usr/local/Cellar. Następnie znajdź ten katalog: /usr/local/Cellar/python3/3.x.y_z/Frameworks/Python.framework(gdzie 3.x.y_zjest wersja Python3, której chcesz użyć, dla mnie to jest 3.6.4_2). To jest katalog, który chcemy znaleźć instalatora. Musimy połączyć się z tym katalogiem z katalogu, w którym patrzy instalator, tworząc dowiązanie symboliczne.

Użycie lnpolecenia ( 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.frameworkzałatwi sprawę. Z pewnością musisz sudo.

To zadziałało dla mnie.

(„Piwnica” to miejsce, do którego chodzą wszystkie „beczki”. Homebrew instaluje pakiety we własnym katalogu (w piwnicy), a następnie łączy swoje pliki do / usr / local /. [Z bloga Ryana Kulli ])

Evenfire
źródło
Dzięki za te informacje. Naprawiłem już „domyślny” instalator. Ponieważ nie potrzebuję Pythona do niczego innego, co zadziałałoby dla mnie. Ogólnie wolę używać Homebrew dla zachowania spójności. I Apple ma domyślnie zainstalowaną wersję 2. Czy były kompromisy między używaniem dwóch instalatorów (Homebrew i jednego ze strony Pythona)? Wydaje mi się, że Homebrew będzie łatwiej aktualizować Pythona. I możesz łatwo odinstalować. Nie mam pojęcia, jak to zrobić za pomocą innej metody instalacji. Skłoniło mnie do powrotu do wersji Homebrew, ponieważ wiem, jak nią zarządzać.
Greg
@greg homebrew jest łatwiejszy do zarządzania, np. odinstalowuje. Utrzymuje również ładnie powiązane różne zależności między pakietami.
songololo
1
@evenfire dzięki za miłe wyjaśnienie. brew info pythonto przydatny sposób na szybkie znalezienie ścieżek do istniejących instalacji warzonego pytona
songololo
4
Heads-up, który ostatnio zmienił domyślną pythonwersję na v3, więc dla tych, którzy niedawno zaktualizowali / zaktualizowali swój homebrew, powyższe ścieżki będą zawierać pythoni niepython3
songololo
4
Jak mogę połączyć plik frameworka z pythonem Anaconda? (Nie mogę znaleźć python.framework w anakonda dirs)
natsuapo
5

Połączyłem się z linkiem dostarczonym z instalatorem QGIS do https://www.python.org/downloads/ i w ten sposób zainstalowałem python3. Instalator QGIS był wtedy szczęśliwy.

Wydaje się, że przeczy temu komentarz tutaj:

„Ponieważ QGIS łączy bibliotekę Python, musisz zainstalować Python.org Python 3.6. Nie możesz zastąpić innej instalacji Python 3. Niestety tak to jest.”

Opublikowane na http://www.kyngchaos.com/blog/2018/20180315_qgis_3_must_use_python.org_python_3 . Gdybym wiedział, jak skontaktować się z Williamem Kyngesbury, zrobiłbym to. Wykonuje jednak świetną usługę.

Greg
źródło
4

Kolejna wersja pyenvi dowiązanie symboliczne, wykorzystujące brewtylko zależności.

Zalecaną lokalizacją do zainstalowania pyenvjest ~/.pyenv( $HOME/.pyenv), ale może to być dowolna lokalizacja.

  1. klonuj pyenvrepozytorium (być może dostosuj się ~/.pyenvdo /path/to/pyenv)

    git clone https://github.com/pyenv/pyenv.git ~/.pyenv
  2. skonfiguruj pyenvw ~/.bash_profile(być może dostosuj $HOME/.pyenvsię /path/to/pyenv, pamiętaj, że trzecia linia musi pozostać ostatnia .bash_profile, nawet po przyszłych aktualizacjach)

    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. zrestartuj powłokę

    exec "$SHELL"
  4. zainstaluj zależności readlinei xzw prosty sposóbbrew

    brew install readline xz
  5. zainstaluj Python 3.6.x zawierający Python.framework(może dostosuj numer wersji)

    env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.6.8
  6. zawsze powtarzaj po dodaniu nowej wersji Pythona do pyenv

    pyenv rehash
  7. dowiązanie symboliczne Python.framework

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

Teraz instalator QGIS 3.6.0 z qgis.org powinien działać poprawnie, a macOS jest dobrze przygotowany do wielu wersji Pythona, dobrze grając z Pythonem systemowym.

bez stosu
źródło
Działa to dla mnie lepiej niż instalacja homebrew, co było naprawdę niezadowolone z istniejących zależności, które zainstalowałem.
MattyB
3

Wersja wykorzystująca pyenvi 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
źródło
2
powinno wystarczyć pierwsze 2 linie, a potemln -s ~/.pyenv/versions/3.6.5/Python.framework /Library/Frameworks/Python.framework
Alex Markov
0

Napotkałem ten sam problem podczas instalowania QGIS na komputerze Mac.
Nie powiodło się, chociaż próbowałem połączyć go z innym Pythonem zainstalowanym przez anacondę itp.
Sposób, w jaki rozwiązałem problem: pobierz powiązaną wersję Pythona z python.org i zainstaluj.

Chokurei
źródło