Nasza strona używa cookies. Dowiedz się więcej o celu ich używania i zmianie ustawień w przeglądarce. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Zrozumieć środowiska wirtualne Pythona

Karan Bhanot Pursuing PhD in Computer Science
Zobacz, jak używać narzędzia virtualenv do tworzenia wirtualnych środowisk w Pythonie i przekonaj się o korzyściach z tego płynących.
Zrozumieć środowiska wirtualne Pythona

Rozpocząłem projekt, w którym musiałem szybko sprawdzić, czy pakiet Flask działała z Pythonem zainstalowanym na moim komputerze. Gdy uruchomiłem polecenie instalacji Flask, ostrzeżono mnie, że pakiet został już zainstalowany, ponieważ miałem Anacondę na moim komputerze.

Ale kiedy próbowałem uruchomić aplikację Hello World Flask na Sublime Text 3, konsola dała błąd, że nie może znaleźć modułu Flask. Byłem zdezorientowany i zacząłem czytać online o problemie. Odkryłem, że Anaconda ma moduł Flask, ale Python, którego używałem w Sublime Text, nie miał go. Zapisałem sobie, aby znaleźć rozwiązanie, aby zrozumieć, jak poprawnie skonfigurować Pythona, zainstalować odpowiednie pakiety we właściwym miejscu i skonfigurować system do budowania w Sublime Text. Badając temat, trafiłem na wirtualne środowiska, coś, o czym wcześniej nie czytałem.

Po przeczytaniu wielu artykułów na temat środowisk wirtualnych wiele się nauczyłem o Pythonie i tym, jak powinienem tworzyć środowiska do pracy z Pythonem. W tym artykule podzielę się swoją wiedzą na temat konfigurowania tych środowisk za pomocą terminala.

Python

Istnieją obecnie dwie wersje utrzymywane przez społeczność, wersje 2.x i 3.x. Niektóre pakiety działają dobrze z Python 3.x, ale niektóre nie obsługują wersji 3.x i działają tylko z wersją 2.x. W takim przypadku czasami ktoś chciałby pracować z Pythonem 2.x, a czasem z Pythonem 3.x. Zaczynamy od instalacji obu wersji Pythona, abyśmy mogli konfigurować środowiska przy użyciu jednego lub obu. Jeśli masz instalator pakietów, taki jak Homebrew, możesz go użyć do zainstalowania Pythona.

Python 3.X

brew install python@3

 

Python 2.X

brew install python@2

 

To polecenie zainstaluje również pip, który pomaga w instalowaniu pakietów Pythona.

 

Środowisko wirtualne

Za każdym razem, gdy zaczynasz pracować nad projektem, najpierw decydujesz, której wersji języka Python użyć, a następnie wybierasz biblioteki/pakiety, które chcesz mieć w projekcie. Jednak zawsze dobrą praktyką jest nieinstalowanie tych pakietów na poziomie systemu. Być może pracujesz nad wieloma wersjami Pythona na tym samym komputerze lub niektórymi pakietami, które działają tylko z niektórymi wersjami Pythona i nie są kompatybilne z innymi. W takich scenariuszach możemy konfigurować różne środowiska, zwane środowiskami wirtualnymi.

Każde środowisko będzie miało swoją własną wirtualną przestrzeń. Wszystkie pakiety zainstalowane w tym obszarze nie będą się gryźć z pakietami poza środowiskiem i będą zawarte tylko w tym obszarze.

 

Znalezienie lokalizacji, w której zainstalowany jest Python

W zależności od metody użytej do instalacji, Python zostanie zainstalowany w różnych lokalizacjach.

Instalacja Python z oficjalnej strony (dla macOS)

/Library/Frameworks/Python.framework/Versions/

Tu znajdziesz zainstalowaną wersję. Ja mam wersję 3.6, więc ścieżka Pythona będzie wyglądała tak:

/Library/Frameworks/Python.framework/Versions/3.6/bin

 

Instalacja Pythona przy użyciu Homebrew

/usr/local/Cellar/

Potem będą wersje w katalogu python lub python@2. Jeśli weźmiemy przykład python i wersji 3.7.2_1, lokalizacją będzie:

/usr/local/Cellar/python/3.7.2_1/bin

 

Instalacja virtualenv

Będziemy pracować z Pythonem 3 zainstalowanym za pomocą Homebrew. Instalujemy virtualenv za pomocą pip3.

pip3 install virtualenv

 

Tworzenie wirtualnego środowiska

Wszystkie pakiety są zainstalowane i teraz możemy rozpocząć konfigurację naszego środowiska wirtualnego. Musimy zdefiniować lokalizację, w której chcielibyśmy stworzyć nasze środowisko, a także podać nazwę. Umieszczę go w katalogu domowym i ustawię nazwę na virtEnv1.

virtualenv -p python3 ~/virtEnv1

 

Ostatni argument w powyższym poleceniu określa dokładną ścieżkę naszego środowiska wraz z nazwą środowiska. Nasze środowisko jest już skonfigurowane i możemy zacząć w nim pracować.

 

Aktywacja środowiska

Aby rozpocząć pracę w środowisku wirtualnym, musimy je aktywować. Gdy środowisko jest gotowe, w katalogu środowiska, w podkatalogu bin znajdzie się plik activate. Korzystamy z polecenia source, wskazując ten plik i od teraz jesteśmy wewnątrz naszego wirtualnego środowiska.

cd ~/virtEnv1
source bin/activate

 

Nazwa środowiska zaczyna się pojawiać w nawiasach, wskazując, że pracujemy teraz w środowisku.

 

Instalacja pakietów i tworzenie plików

Zainstaluję Flask.

pip install flask


Stworzyłem również plik app.py w katalogu głównym, który ma najbardziej podstawowy kod Hello World w Flask.

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"


if __name__ == '__main__':
    app.run(debug=True)

 

Jeśli spróbuję uruchomić kod w środowisku, działa to tak, jak pokazano na poniższych obrazkach.

python ~/app.py


Klient

Serwer

 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 146-590-411
127.0.0.1 - - [26/Jan/2019 11:55:45] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [26/Jan/2019 11:55:46] "GET /favicon.ico HTTP/1.1" 404 -

 

Dezaktywacja środowiska

Jeśli twoje środowisko jest włączone, łatwo się z niego wydostać. Wystarczy wpisać deactivate w terminalu.

Ponieważ środowisko jest teraz dezaktywowane, używamy ogólnosystemowego Pythona. W systemie nie ma zainstalowanego Flask. Tak więc, jeśli spróbuję ponownie uruchomić ten sam kod, pojawia się błąd, że Flask nie został znaleziony.


W podobny sposób możemy stworzyć o wiele więcej środowisk i replikować podobny proces nawet dla Pythona 2.

 

Używanie Pythona wewnątrz Sublime Text 3

Wolę pracować z Sublime Text za każdym razem, gdy nie pracuję na notatnikach Jupyter. Aby skonfigurować Sublime Text dla Pythona, musimy stworzyć nowy build system. Przejdź do:

Tools > Build System > New Build System...

 

A teraz wpisz to w tak jak poniżej:

{
    "cmd": ["/Users/<username>/virtEnv1/bin/python", "$file"],
    "file_regex": "^[ ]File \"(...?)\", line ([0-9]*)",
    "selector": "source.activate"
}

Zamiast <username> wpisz nazwę Twojego użytkownika.


Zapiszmy go jako virtEnv1Python. Otwórz plik app.py w Sublime Text. Ustaw Build System na virtEnv1Python. Aby sprawdzić, czy aplikacja działa, naciśnij klawisze Command + B. Zobaczysz, że aplikacja się uruchamia, co możesz potwierdzić, wpisując http://127.0.0.1:5000 w przeglądarce.

 

Podsumowanie

W tym artykule omówiłem użycie virtualenv do tworzenia wirtualnych środowisk Pythona i instalowania pakietów w tych środowiskach.

Oryginał tekstu , w języku angielskim, jest dostępny tutaj.

Lubisz dzielić się wiedzą i chcesz zostać autorem?

Podziel się wiedzą z 120 tysiącami naszych czytelników

Dowiedz się więcej