Jak Mogę Uaktualnić określone Pakiety za pomocą pip i Pliku wymagań?
Używam Pipa z plikiem wymagań, w virtualenv, dla moich projektów Django. Próbuję uaktualnić niektóre pakiety, zwłaszcza samo Django, i dostaję błąd dotyczący konfliktów kodu źródłowego:
Źródło w
<virtualenv
>/build/Django ma wersję 1.2.3, która koliduje z Django==1.2.4 (z-R requirements/apps.txt (line 3))
To po aktualizacji numeru wersji Django z 1.2.3 do 1.2.4 w moim pliku wymagań. Używam tej komendy do faktycznie zrób upgrade:
pip --install --upgrade -E `<virtualenv dir`> --requirement `<requirements file`>
Nie mogę znaleźć żadnej flagi, która powoduje ponowne pobranie pakietu. Próbowałem nawet uruchomić najpierw polecenie deinstalacji, a następnie instalację, ale nie ma mowy. Coś przeoczyłem?
10 answers
Najpierw upewnij się, że sprawdziłeś najczęściej głosowaną odpowiedź .
Nie jestem pewien, czy to dokładnie twój problem, ale w moim przypadku nie byłem w stanie uaktualnić Django do 1.2.4 - zawsze kończyłem z wersją 1.2.3, więc odinstalowałem Django za pomocą:
<virtualenv>/bin/pip uninstall Django
Potem usunąłem <virtualenv>/build/Django
katalog i w końcu zainstalowałem odpowiednią wersję z:
<virtualenv>/bin/pip install Django
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-02-02 15:25:24
Uruchomiłem następujące polecenie i zaktualizowałem je z 1.2.3 do 1.4.0
pip install Django --upgrade
Skrót do aktualizacji:
pip install Django -U
Uwaga: jeśli pakiet, który aktualizujesz, ma jakieś wymagania to polecenie dodatkowo zaktualizuje wszystkie wymagania do najnowszych dostępnych wersji. W ostatnich wersjach pip, można zapobiec temu zachowaniu, określając --upgrade-strategy only-if-needed
. Z tą flagą zależności nie będą aktualizowane, chyba że zainstalowane wersje pakietów zależnych Nie już spełniają wymagania zmodernizowanego pakietu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-29 22:10:01
Według dokumentacji pip przykład 3:
pip install --upgrade django
Ale bazując na moim doświadczeniu, użycie tej metody również zaktualizuje każdy pakiet z nią związany. Przykład:
Załóżmy, że chcesz uaktualnić somepackage
które wymagają Django >= 1.2.4
używając tego rodzaju metody, również uaktualnisz somepackage
oraz django
do najnowszej aktualizacji. Dla pewności, do:
# Assume you want to keep Django 1.2.4
pip install --upgrade somepackage django==1.2.4
Zrobi to upgrade somepackage
i utrzyma Django do wersji 1.2.4.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-27 16:31:14
Polecenie skrótu dla --upgrade
:
pip install Django --upgrade
Jest:
pip install Django -U
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-31 13:04:25
Jeśli chcesz uaktualnić tylko jeden konkretny pakiet o nazwie somepackage
, polecenie, którego powinieneś użyć w ostatnich wersjach pip, to
pip install --upgrade --upgrade-strategy only-if-needed somepackage
Jest to bardzo przydatne, gdy tworzysz aplikację w Django, która obecnie będzie działać tylko z określoną wersją Django (powiedzmy Django=1.9.x) i chcesz uaktualnić jakiś zależny pakiet za pomocą funkcji bug-fix/new i zaktualizowany pakiet zależy od Django (ale działa z, powiedzmy, każdą wersją Django po 1.5).
Domyślne zachowanie pip install --upgrade django-some-package
byłoby uaktualnienie Django do najnowszej dostępnej wersji, która w przeciwnym razie mogłaby zepsuć twoją aplikację, chociaż z zależnymi --upgrade-strategy only-if-needed
pakietami będą teraz aktualizowane tylko w razie potrzeby.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-27 16:32:47
Jeśli zaktualizujesz pakiet, Stary zostanie odinstalowany.
Wygodnym sposobem na to jest użycie tego PIP-upgrader , który również aktualizuje wersje w pliku requirements.txt
dla wybranych pakietów (lub wszystkich pakietów).
Instalacja
pip install pip-upgrader
Użycie
Aktywuj swój virtualenv (ważne, ponieważ zainstaluje on również nowe wersje uaktualnionych pakietów w bieżącym virtualenv).
cd
do twojego projektu Katalog, a następnie uruchom:
pip-upgrade
Zaawansowane wykorzystanie
Jeśli wymagania są umieszczone w niestandardowej lokalizacji, wyślij je jako argumenty:
pip-upgrade path/to/requirements.txt
Jeśli już wiesz, jaki pakiet chcesz uaktualnić, po prostu wyślij je jako argumenty:
pip-upgrade -p django -p celery -p dateutil
Jeśli chcesz uaktualnić do wersji pre-release / post-release, dodaj argument --prerelease
do swojego polecenia.
Pełne ujawnienie: napisałem ten pakiet.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-27 16:34:14
Normalnie, pip oczyści się po sobie i usunie zawartość katalogu build. Nie robi tego tylko wtedy, gdy:
- użyłeś opcji
--no-install
- używasz edytowalnych pakietów
- Instalacja została anulowana lub w inny sposób przerwana.
We wszystkich innych przypadkach, nie powinieneś mieć build
katalogu, który zatyka twoje środowisko.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-04 00:43:14
To dla mnie rozwiązało problem:
pip install -I --upgrade psutil --force
Potem po prostu odinstaluj psutil z nową wersją I hop możesz nagle zainstalować starszą wersję (:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-27 16:34:49
Zdefiniowanie konkretnej wersji do aktualizacji pomogło mi zamiast tylko polecenia upgrade.
pip3 install larapy-installer==0.4.01 -U
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-27 16:35:22
Używam tego:
pip3 install -r requirements.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-04 10:31:57