Szukaj…


Wprowadzenie

pip jest najczęściej używanym menedżerem pakietów dla indeksu pakietów Python, instalowanym domyślnie z najnowszymi wersjami Pythona.

Składnia

  • pip <polecenie> [opcje] gdzie <polecenie> jest jednym z:
    • zainstalować
      • Zainstaluj pakiety
    • odinstaluj
      • Odinstaluj pakiety
    • zamrażać
      • Wydrukuj zainstalowane pakiety w formacie wymagań
    • lista
      • Wyświetl listę zainstalowanych pakietów
    • pokazać
      • Pokaż informacje o zainstalowanych pakietach
    • Szukaj
      • Wyszukaj pakiety w PyPI
    • koło
      • Zbuduj koła ze swoich wymagań
    • zamek błyskawiczny
      • Pakiety indywidualne (nieaktualne)
    • rozsunąć suwak
      • Rozpakuj pojedyncze pakiety (przestarzałe)
    • pakiet
      • Twórz pybundle (przestarzałe)
    • Wsparcie
      • Pokaż pomoc dotyczącą poleceń

Uwagi

Czasami pip wykona ręczną kompilację kodu natywnego. W systemie Linux python automatycznie wybierze dostępny kompilator C w twoim systemie. Wymagana wersja programu Visual Studio / Visual C ++ w systemie Windows znajduje się w poniższej tabeli (nowsze wersje nie będą działać.)

Wersja Python Wersja programu Visual Studio Wersja Visual C ++
2,6 - 3,2 Visual Studio 2008 Visual C ++ 9.0
3,3 - 3,4 Visual Studio 2010 Visual C ++ 10.0
3.5 Visual Studio 2015 Visual C ++ 14.0

Źródło: wiki.python.org

Zainstaluj pakiety

Aby zainstalować najnowszą wersję pakietu o nazwie SomePackage :

$ pip install SomePackage

Aby zainstalować określoną wersję pakietu:

$ pip install SomePackage==1.0.4

Aby określić minimalną wersję do zainstalowania dla pakietu:

$ pip install SomePackage>=1.0.4

Jeśli polecenia pokazują błąd odmowy uprawnień w systemie Linux / Unix, użyj sudo z poleceniami


Zainstaluj z plików wymagań

$ pip install -r requirements.txt

Każdy wiersz pliku wymagań wskazuje na coś do zainstalowania i podobnie jak argumenty do instalacji przez pip, szczegółowe informacje na temat formatu plików są tutaj: Format pliku wymagań .

Po zainstalowaniu pakietu możesz to sprawdzić za pomocą polecenia freeze :

$ pip freeze

Odinstaluj pakiety

Aby odinstalować pakiet:

$ pip uninstall SomePackage

Aby wyświetlić listę wszystkich pakietów zainstalowanych przy użyciu `pip`

Aby wyświetlić listę zainstalowanych pakietów:

$ pip list
# example output
docutils (0.9.1)
Jinja2 (2.6)
Pygments (1.5)
Sphinx (1.1.2)

Aby wyświetlić listę nieaktualnych pakietów i pokazać najnowszą dostępną wersję:

$ pip list --outdated
# example output
docutils (Current: 0.9.1 Latest: 0.10)
Sphinx (Current: 1.1.2 Latest: 1.1.3)

Pakiety aktualizacji

Bieganie

$ pip install --upgrade SomePackage 

zaktualizuje pakiet SomePackage i wszystkie jego zależności. Ponadto pip automatycznie usuwa starszą wersję pakietu przed aktualizacją.

Aby zaktualizować sam pip, wykonaj

$ pip install --upgrade pip

na Uniksie lub

$ python -m pip install --upgrade pip

na komputerach z systemem Windows.

Aktualizowanie wszystkich nieaktualnych pakietów w systemie Linux

pip nie zawiera obecnie flagi umożliwiającej użytkownikowi aktualizację wszystkich nieaktualnych pakietów za jednym razem. Można to jednak osiągnąć, łącząc polecenia w środowisku Linux:

pip list --outdated --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U

To polecenie pobiera wszystkie pakiety z lokalnego virtualenv i sprawdza, czy są nieaktualne. Z tej listy pobiera nazwę pakietu, a następnie pip install -U komendy pip install -U . Pod koniec tego procesu wszystkie pakiety lokalne powinny zostać zaktualizowane.

Aktualizowanie wszystkich nieaktualnych pakietów w systemie Windows

pip nie zawiera obecnie flagi umożliwiającej użytkownikowi aktualizację wszystkich nieaktualnych pakietów za jednym razem. Można to jednak osiągnąć, łącząc polecenia w środowisku Windows:

for /F "delims= " %i in ('pip list --outdated --local') do pip install -U %i

To polecenie pobiera wszystkie pakiety z lokalnego virtualenv i sprawdza, czy są nieaktualne. Z tej listy pobiera nazwę pakietu, a następnie pip install -U komendy pip install -U . Pod koniec tego procesu wszystkie pakiety lokalne powinny zostać zaktualizowane.

Utwórz plik wymagania.txt wszystkich pakietów w systemie

pip pomaga w tworzeniu requirements.txt plików poprzez dostarczanie freeze opcji.

pip freeze > requirements.txt

Spowoduje to zapisanie listy wszystkich pakietów i ich wersji zainstalowanych w systemie do pliku o nazwie requirements.txt w bieżącym folderze.

Utwórz plik wymagania.txt pakietów tylko w bieżącym virtualenv

pip pomaga w tworzeniu requirements.txt plików poprzez dostarczanie freeze opcji.

pip freeze --local > requirements.txt

Parametr --local wyświetli tylko listę pakietów i wersji zainstalowanych lokalnie na virtualenv. Pakiety globalne nie będą wymienione.

Używanie określonej wersji Pythona z pipem

Jeśli masz zainstalowany zarówno Python 3, jak i Python 2, możesz określić, której wersji Python chcesz używać. Jest to przydatne, gdy pakiety obsługują tylko Python 2 lub 3 lub gdy chcesz przetestować oba.

Jeśli chcesz zainstalować pakiety dla Python 2, uruchom albo:

pip install [package]

lub:

pip2 install [package]

Jeśli chcesz zainstalować pakiety dla Python 3, wykonaj:

pip3 install [package]

Możesz także wywołać instalację pakietu do określonej instalacji w języku Python za pomocą:

\path\to\that\python.exe -m pip install some_package # on Windows OR
/usr/bin/python25 -m pip install some_package # on OS-X/Linux

Na platformach OS-X / Linux / Unix ważne jest, aby zdawać sobie sprawę z rozróżnienia między wersją systemową Pythona (która aktualizacja powoduje, że system nie działa), a wersją użytkownika Pythona. Być może, w zależności od których staramy się uaktualniać potrzebę przedrostek te polecenia z sudo i wprowadzić hasło.

Podobnie w systemie Windows niektóre instalacje Pythona, szczególnie te, które są częścią innego pakietu, mogą zostać zainstalowane w katalogach systemowych - te, które będziesz musiał uaktualnić z okna poleceń działającego w trybie administratora - jeśli okaże się, że musisz to zrobić zrób to, to jest bardzo dobry pomysł, aby sprawdzić, którą instalację Pythona próbujesz zaktualizować za pomocą polecenia takiego jak python -c"import sys;print(sys.path);" lub py -3.5 -c"import sys;print(sys.path);" możesz również sprawdzić, który pip próbujesz uruchomić za pomocą pip --version

W systemie Windows, jeśli masz zainstalowane zarówno Python 2, jak i Python 3, a na swojej ścieżce, a Twój python 3 jest większy niż 3,4, prawdopodobnie będziesz również mieć py Launcher launcher na ścieżce systemowej. Następnie możesz wykonywać sztuczki, takie jak:

py -3 -m pip install -U some_package # Install/Upgrade some_package to the latest python 3
py -3.3 -m pip install -U some_package # Install/Upgrade some_package to python 3.3 if present
py -2 -m pip install -U some_package # Install/Upgrade some_package to the latest python 2 - 64 bit if present
py -2.7-32 -m pip install -U some_package # Install/Upgrade some_package to python 2.7 - 32 bit if present

Jeśli używasz i utrzymujesz wiele wersji Pythona, zdecydowanie polecam przeczytanie o wirtualnych środowiskach python virtualenv lub venv które pozwalają venv zarówno wersję Pythona, jak i obecne pakiety.

Instalowanie pakietów jeszcze nie na pip jako koła

Wiele czystych pakietów Pythona nie jest jeszcze dostępnych w indeksie pakietów Python jako koła, ale nadal można je zainstalować poprawnie. Jednak niektóre pakiety w systemie Windows zawierają błąd, który budzi przerażenie vcvarsall.bat.

Problem polega na tym, że pakiet, który próbujesz zainstalować, zawiera rozszerzenie C lub C ++ i nie jest obecnie dostępny jako wstępnie zbudowane koło z indeksu pakietu python, pypi , aw systemie Windows nie masz łańcucha narzędzi potrzebnego do zbudowania takie przedmioty.

Najprostszą odpowiedzią jest przejście do doskonałej strony Christopha Gohlkego i znalezienie odpowiedniej wersji bibliotek, których potrzebujesz. Odpowiednio w nazwie pakietu -cp NN - musi pasować do twojej wersji Pythona, tzn. Jeśli używasz 32-bitowego pythona w systemie Windows nawet na win64, nazwa musi zawierać -win32-, a jeśli używasz 64-bitowego pytona, musi zawierać -win_amd64 - i wtedy wersja Pythona musi pasować, tzn. w Pythonie 34 nazwa pliku musi zawierać -cp 34- itd. Jest to w zasadzie magia, którą pip robi dla ciebie na stronie pypi.

Alternatywnie, musisz uzyskać odpowiedni zestaw programistyczny dla systemu Windows dla używanej wersji Pythona, nagłówki dla dowolnej biblioteki, w której pakiet, który próbujesz zbudować interfejsy, ewentualnie nagłówki python dla wersji Python itp.

Python 2.7 używał Visual Studio 2008, Python 3.3 i 3.4 używał Visual Studio 2010, a Python 3.5+ używa Visual Studio 2015.

Następnie może być konieczne zlokalizowanie plików nagłówkowych przy dopasowanej wersji dla bibliotek, do których prowadzi żądany pakiet, i pobranie ich do odpowiednich lokalizacji.

Wreszcie możesz pozwolić pipowi wykonać kompilację - oczywiście jeśli pakiet zawiera zależności, których jeszcze nie masz, być może będziesz musiał również znaleźć dla nich pliki nagłówkowe.

Alternatywy: Warto również zapoznać się, zarówno na stronie pypi , jak i na stronie Christop , z każdą nieco wcześniejszą wersją pakietu, której szukasz, albo czystym pythonem, albo pre-kompilacją dla twojej platformy i wersji pythona i ewentualnie z nich korzystać, jeśli znaleziono, dopóki twoja paczka nie będzie dostępna. Podobnie, jeśli używasz najnowszej wersji Pythona, może się okazać, że opiekunom pakietów zajmuje trochę czasu, aby nadrobić zaległości, więc w przypadku projektów, które naprawdę potrzebują określonego pakietu, może być konieczne użycie nieco starszego Pythona. Możesz także sprawdzić witrynę źródłową pakietów, aby sprawdzić, czy istnieje wersja rozwidlona, która jest wstępnie zbudowana lub jako czysty python, i szukając alternatywnych pakietów, które zapewniają wymaganą funkcjonalność, ale są dostępne - jednym z przykładów, który przychodzi na myśl, jest Poduszka , aktywnie utrzymywana , spadek zamiennika dla PIL obecnie nie aktualizowany za 6 lat i niedostępny dla Pythona 3 .

Posłowiem zachęcam każdego, kto ma ten problem, do pójścia do narzędzia do śledzenia błędów w pakiecie i dodania lub podniesienia, jeśli jeszcze go nie ma, biletu grzecznie proszącego, aby opiekunowie pakietu udostępnili pypi dla twojego konkretnego połączenie platformy i pytona, jeśli zostanie to zrobione, to normalnie z czasem będzie lepiej, niektórzy opiekunowie pakietów nie zdają sobie sprawy, że przegapili daną kombinację, z której ludzie mogą korzystać.

Uwaga na temat instalowania wersji wstępnych

Pip postępuje zgodnie z zasadami Semantic Versioning i domyślnie woli wydać pakiety od wersji wstępnych. Więc jeśli dany pakiet został wydany jako V0.98 i istnieje również wersja kandydująca V1.0-rc1 domyślnym zachowaniem pip install będzie instalacja V0.98 - jeśli chcesz zainstalować wersję kandydującą, radzimy aby najpierw przetestować w środowisku wirtualnym , możesz to zrobić za pomocą opcji --pip install --pre nazwa-pakietu lub --pip install --pre --upgrade nazwa-pakietu . W wielu przypadkach wersje przedpremierowe lub kandydaci do wydania mogą nie mieć zbudowanych kół dla wszystkich kombinacji platform i wersji, więc istnieje większe prawdopodobieństwo, że napotkają Państwo powyższe problemy.

Uwaga na temat instalowania wersji rozwojowych

Możesz także użyć pipa do zainstalowania wersji programistycznych pakietów z github i innych lokalizacji, ponieważ taki kod się zmienia, więc jest bardzo mało prawdopodobne, aby zbudowano dla niego koła, więc wszelkie nieczyste pakiety będą wymagały obecności narzędzi do budowania, i mogą one zostać przerwana w dowolnym momencie, dzięki czemu użytkownik jest mocno zachęcani do tylko zainstalować takie pakiety w środowisku wirtualnym.

Istnieją trzy opcje dla takich instalacji:

  1. Pobierz skompresowaną migawkę, większość systemów kontroli wersji online ma opcję pobrania skompresowanej migawki kodu. Można to pobrać ręcznie, a następnie zainstalować ze ścieżką pip install / do / pobrania / pliku. Uwaga: w przypadku większości formatów kompresji pip poradzi sobie z rozpakowywaniem do obszaru pamięci podręcznej itp.
  2. Pozwól pipowi zająć się pobieraniem i instalowaniem za pomocą: pip install URL / of / package / repository - może być również konieczne użycie --trusted-host , --client-cert i / lub --proxy poprawnie, szczególnie w środowisku korporacyjnym. na przykład:
    > py -3.5-32 -m venv demo-pip
    > demo-pip\Scripts\activate.bat
    > python -m pip install -U pip
    Collecting pip
      Using cached pip-9.0.1-py2.py3-none-any.whl
    Installing collected packages: pip
      Found existing installation: pip 8.1.1
        Uninstalling pip-8.1.1:
          Successfully uninstalled pip-8.1.1
    Successfully installed pip-9.0.1
    > pip install git+https://github.com/sphinx-doc/sphinx/
    Collecting git+https://github.com/sphinx-doc/sphinx/
      Cloning https://github.com/sphinx-doc/sphinx/ to c:\users\steve-~1\appdata\local\temp\pip-04yn9hpp-build
    Collecting six>=1.5 (from Sphinx==1.7.dev20170506)
      Using cached six-1.10.0-py2.py3-none-any.whl
    Collecting Jinja2>=2.3 (from Sphinx==1.7.dev20170506)
      Using cached Jinja2-2.9.6-py2.py3-none-any.whl
    Collecting Pygments>=2.0 (from Sphinx==1.7.dev20170506)
      Using cached Pygments-2.2.0-py2.py3-none-any.whl
    Collecting docutils>=0.11 (from Sphinx==1.7.dev20170506)
      Using cached docutils-0.13.1-py3-none-any.whl
    Collecting snowballstemmer>=1.1 (from Sphinx==1.7.dev20170506)
      Using cached snowballstemmer-1.2.1-py2.py3-none-any.whl
    Collecting babel!=2.0,>=1.3 (from Sphinx==1.7.dev20170506)
      Using cached Babel-2.4.0-py2.py3-none-any.whl
    Collecting alabaster<0.8,>=0.7 (from Sphinx==1.7.dev20170506)
      Using cached alabaster-0.7.10-py2.py3-none-any.whl
    Collecting imagesize (from Sphinx==1.7.dev20170506)
      Using cached imagesize-0.7.1-py2.py3-none-any.whl
    Collecting requests>=2.0.0 (from Sphinx==1.7.dev20170506)
      Using cached requests-2.13.0-py2.py3-none-any.whl
    Collecting typing (from Sphinx==1.7.dev20170506)
      Using cached typing-3.6.1.tar.gz
    Requirement already satisfied: setuptools in f:\toolbuild\temp\demo-pip\lib\site-packages (from Sphinx==1.7.dev20170506)
    Collecting sphinxcontrib-websupport (from Sphinx==1.7.dev20170506)
      Downloading sphinxcontrib_websupport-1.0.0-py2.py3-none-any.whl
    Collecting colorama>=0.3.5 (from Sphinx==1.7.dev20170506)
      Using cached colorama-0.3.9-py2.py3-none-any.whl
    Collecting MarkupSafe>=0.23 (from Jinja2>=2.3->Sphinx==1.7.dev20170506)
      Using cached MarkupSafe-1.0.tar.gz
    Collecting pytz>=0a (from babel!=2.0,>=1.3->Sphinx==1.7.dev20170506)
      Using cached pytz-2017.2-py2.py3-none-any.whl
    Collecting sqlalchemy>=0.9 (from sphinxcontrib-websupport->Sphinx==1.7.dev20170506)
      Downloading SQLAlchemy-1.1.9.tar.gz (5.2MB)
        100% |################################| 5.2MB 220kB/s
    Collecting whoosh>=2.0 (from sphinxcontrib-websupport->Sphinx==1.7.dev20170506)
      Downloading Whoosh-2.7.4-py2.py3-none-any.whl (468kB)
        100% |################################| 471kB 1.1MB/s
    Installing collected packages: six, MarkupSafe, Jinja2, Pygments, docutils, snowballstemmer, pytz, babel, alabaster, imagesize, requests, typing, sqlalchemy, whoosh, sphinxcontrib-websupport, colorama, Sphinx
      Running setup.py install for MarkupSafe ... done
      Running setup.py install for typing ... done
      Running setup.py install for sqlalchemy ... done
      Running setup.py install for Sphinx ... done
    Successfully installed Jinja2-2.9.6 MarkupSafe-1.0 Pygments-2.2.0 Sphinx-1.7.dev20170506 alabaster-0.7.10 babel-2.4.0 colorama-0.3.9 docutils-0.13.1 imagesize-0.7.1 pytz-2017.2 requests-2.13.0 six-1.10.0 snowballstemmer-1.2.1 sphinxcontrib-websupport-1.0.0 sqlalchemy-1.1.9 typing-3.6.1 whoosh-2.7.4

Zanotuj prefiks git+ do adresu URL.

  1. Klon repozytorium przy użyciu git , mercurial lub inny dopuszczalny narzędzie, korzystnie narzędzie DVCS i używać pip install path / to / sklonowanego / repo - to zarówno proces dowolny plik requires.text i wykonać czynności kompilacji i konfiguracji, można ręcznie zmienić katalog do sklonowanego repozytorium i uruchom pip install -r requires.txt a następnie python setup.py install aby uzyskać ten sam efekt. Dużą zaletą tego podejścia jest to, że chociaż początkowa operacja klonowania może potrwać dłużej niż pobieranie migawki, możesz zaktualizować ją do najnowszej wersji, w przypadku git: git pull origin master i jeśli bieżąca wersja zawiera błędy, możesz użyć pip uninstall nazwa-pakietu następnie użyj komend git checkout , aby cofnąć się przez historię repozytorium do wcześniejszych wersji i spróbować ponownie.


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow