සියලුම පයිතන් පැකේජ එකවර යාවත්කාලීන කළ pip
හැකිද?
සටහන : නිල නිකුතුවේ මේ සඳහා විශේෂාංග ඉල්ලීමක් ඇති බව.
pip
, ඔබ උත්ශ්රේණිගත කිරීමේදී ඔබේ ස්ථාපනය ඉස්කුරුප්පු requests
කරයි. දෝෂ පණිවිඩය cannot import name IncompleteRead
.
සියලුම පයිතන් පැකේජ එකවර යාවත්කාලීන කළ pip
හැකිද?
සටහන : නිල නිකුතුවේ මේ සඳහා විශේෂාංග ඉල්ලීමක් ඇති බව.
pip
, ඔබ උත්ශ්රේණිගත කිරීමේදී ඔබේ ස්ථාපනය ඉස්කුරුප්පු requests
කරයි. දෝෂ පණිවිඩය cannot import name IncompleteRead
.
Answers:
තවම සාදන ලද ධජයක් නොමැත, නමුත් ඔබට භාවිතා කළ හැකිය
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
සටහන: මේ සඳහා අසීමිත විභව වෙනස්කම් ඇත. මම මෙම පිළිතුර කෙටි හා සරල ලෙස තබා ගැනීමට උත්සාහ කරමි, නමුත් කරුණාකර අදහස් දැක්වීමේ වෙනස්කම් යෝජනා කරන්න!
පැරණි අනුවාදයේ pip
, ඔබට ඒ වෙනුවට මෙය භාවිතා කළ හැකිය:
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
මෙම grep
@jawache යෝජනා කරන පරිදි, සංස්කරණය කළ ( "-e") පැකේජය අර්ථ දැක්වීම් මඟ වේ. (ඔව්, ඔයා වෙනුවට හැකි grep
+ cut
සමඟ sed
හෝ awk
හෝ perl
හෝ ...).
මෙම -n1
සඳහා ධජය xargs
එක් පැකේජය යාවත්කාලීන කිරීම නම් කිරීම වළක්වා සියල්ල රඳවා තබා (ස්තුති අසමත් @andsens ).
pip install -U
, එය සියලු පැකේජ යාවත්කාලීන කරනු ඇත. එය apt-get සමඟ යම් ගැටුමක් ඇති කළ හැකි යැයි මම බිය වෙමි.
tee
සත්ය උත්ශ්රේණිගත කිරීමට පෙර මම කලින් විසි කරමි, එවිට ඔබට මුල් වෙරිසන් ලැයිස්තුවක් ලබා ගත හැකිය. උදා: pip freeze --local | tee before_upgrade.txt | ...
ඒ ආකාරයෙන් යම් ගැටළුවක් ඇත්නම් ආපසු හැරවීම පහසු වනු ඇත.
-H
කිරීමට sudo
: ක කරදර කාරී දෝෂ වළක්වා ගැනීමට $ pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 sudo -H pip install -U
ඔබට පහත පයිතන් කේතය භාවිතා කළ හැකිය. මෙන් නොව pip freeze
, මෙය අනතුරු ඇඟවීම් සහ FIXME දෝෂ මුද්රණය නොකරනු ඇත.
පයිප්ප සඳහා <10.0.1
import pip
from subprocess import call
packages = [dist.project_name for dist in pip.get_installed_distributions()]
call("pip install --upgrade " + ' '.join(packages), shell=True)
පයිප්ප සඳහා> = 10.0.1
import pkg_resources
from subprocess import call
packages = [dist.project_name for dist in pkg_resources.working_set]
call("pip install --upgrade " + ' '.join(packages), shell=True)
import pip
pip.install('packagename')
?
සියලුම දේශීය පැකේජ යාවත්කාලීන කිරීමට; ඔබට භාවිතා කළ හැකිය pip-review
:
$ pip install pip-review
$ pip-review --local --interactive
pip-review
යනු දෙබලකි pip-tools
. Nedknedlsepp විසින් සඳහන් කළ pip-tools
නිකුතුව බලන්න . පැකේජය ක්රියා කරන නමුත් පැකේජය තවදුරටත් ක්රියාත්මක නොවේ.pip-review
pip-tools
pip-review
0.5 අනුවාදයේ සිට වින්ඩෝස් මත ක්රියා කරයි .
pip-review --local --auto
වින්ඩෝස් මත ක්රියා කරයි. අනිත් අයටත් හොඳ විය යුතුයි. (command යනු විධාන විමසුමේදී ඔබ සිටින ඕනෑම නාමාවලියකි. උදා: සී: / පරිශීලකයින් / පරිශීලක නාමය>)
කරන්න
$ pip freeze > requirements.txt
පෙළ ගොනුව විවෘත කරන්න, ==
සමඟ ප්රතිස්ථාපනය කර >=
ක්රියාත්මක කරන්න
$ pip install -r requirements.txt --upgrade
කිසියම් පැකේජයක් උත්ශ්රේණි කිරීම නවතා දැමීමේ ගැටලුවක් ඔබට තිබේ නම් (සමහර විට අංකිතයි), ඩිරෙක්ටරියට ($) ගොස් නම සඳහන් කරන්න (ඊට පෙර # එකතු කරන්න) සහ යාවත්කාලීන කිරීම නැවත ක්රියාත්මක කරන්න. ඔබට පසුව එම කොටස නැවත සම්බන්ධ කළ හැකිය. පයිතන් ගෝලීය පරිසරය පිටපත් කිරීම සඳහා ද මෙය විශිෂ්ටයි.
වෙනත් ක්රමයක්:
නල සමාලෝචන ක්රමයටද මම කැමතියි:
py2
$ pip install pip-review
$ pip-review --local --interactive
py3
$ pip3 install pip-review
$ py -3 -m pip_review --local --interactive
සියලුම පැකේජ යාවත්කාලීන කිරීමට ඔබට 'a' තෝරාගත හැකිය; එක් උත්ශ්රේණි කිරීමක් අසමත් වුවහොත්, එය නැවත ක්රියාත්මක කරන්න, එය ඊළඟ එකෙහි දිගටම පවතී.
requirements.txt
ගේ =={version}
. උදාහරණයක් ලෙස: python-dateutil==2.4.2
කිරීමට python-dateutil
සියලු මාර්ග සඳහා.
$ pip freeze | cut -d '=' -f1> requirements.txt
අනුවාදය ඉවත් කිරීම සඳහා
pip3 install -r <(pip3 freeze) --upgrade
<(pip3 freeze)
$ pip install pipupgrade
$ pipupgrade --verbose --latest --yes
ගොනුවකින් ඔබේ පද්ධතිය, දේශීය හෝ පැකේජ යාවත්කාලීන කිරීමට පයිප්ග්රේඩ් ඔබට උදව් කරයි requirements.txt
! එය වෙනස් නොවන පැකේජ තෝරා බේරා වැඩි දියුණු කරයි. බහු පයිතන් පරිසරයන් තුළ ඇති පැකේජ යාවත්කාලීන කිරීමට ද පයිප්ග්රේඩ් සහතික කරයි. Python2.7 +, Python3.4 + සහ pip9 +, pip10 +, pip18 +, pip19 + සමඟ අනුකූල වේ.
සටහන: මම මෙවලමෙහි කර්තෘ වෙමි.
Checking...
මම එය උත්සාහ කළ විට එය සදහටම හිර වී ඇත .
[0;93mChecking...[0m
ModuleNotFoundError: No module named 'ctypes.windll'
විශිෂ්ට උපදේශන පසු Windows අනුවාදය ප්රලේඛනය සඳහා FOR
Woude ඩර් රොබ් වෑන් රථයකින්
for /F "delims===" %i in ('pip freeze -l') do pip install -U %i
for /F "delims= " %i in ('pip list --outdated') do pip install -U %i
ඉක්මන් බැවින් එය "යල් පැන ගිය" පැකේජ පමණක් උත්සාහ කර යාවත්කාලීන කරනු ඇත
for /F "skip=2 delims= " %i in ('pip list --outdated') do pip install --upgrade %i
. මෙය කණ්ඩායම් ගොනුවකින් ක්රියාත්මක වන්නේ නම්, ඒ %%i
වෙනුවට භාවිතා කිරීමට වග බලා ගන්න %i
. pip
මෙම විධානය භාවිතයෙන් ක්රියාත්මක කිරීමට පෙර යාවත්කාලීන කිරීම වඩා පිරිසිදු බව සලකන්න python -m pip install --upgrade pip
.
මෙම විකල්පය මට වඩා සරල හා කියවිය හැකි බව පෙනේ:
pip install -U `pip list --outdated | awk 'NR>2 {print $1}'`
පැහැදිලි කිරීම නම් pip list --outdated
යල්පැනගිය පැකේජ ලැයිස්තුවක් මෙම ආකෘතියෙන් ප්රතිදානය කරයි:
Package Version Latest Type
--------- ------- ------ -----
fonttools 3.31.0 3.32.0 wheel
urllib3 1.24 1.24.1 wheel
requests 2.20.0 2.20.1 wheel
අමුතු විධානය තුළ, NR>2
පළමු වාර්තා දෙක (රේඛා) මඟ හැර {print $1}
, එක් එක් පේළියේ පළමු වචනය තෝරා ගනී (සර්ජියෝ අරාජෝ විසින් යෝජනා කළ පරිදි, මම ඉවත් කළ වාර්තා හැසිරවිය හැකි tail -n +3
බැවින් මම ඉවත් කළෙමි awk
).
awk 'NR>2 {print $1}'
මඟින් ප්රතිදානය පිරිසිදු කිරීමෙන් වළක්වා ගත හැකිය
යල් පැන ගිය ඇසුරුම් ඔබට මුද්රණය කළ හැකිය
pip freeze | cut -d = -f 1 | xargs -n 1 pip search | grep -B2 'LATEST:'
pip freeze --local | cut -d = -f 1 | xargs -n 1 pip search | grep -B2 'LATEST:'
python -m pip list outdated
(එය අවශ්යතා ආකෘතියේ නොමැති වුවද).
පහත දැක්වෙන එක්-ලයිනර් උදව් බව ඔප්පු කළ හැකිය:
(පයිප්> 20.0)
pip list --format freeze --outdated | sed 's/=.*//g' | xargs -n1 pip install -U
පැරණි අනුවාද:
pip list --format freeze --outdated | sed 's/(.*//g' | xargs -n1 pip install -U
xargs -n1
දෝෂයක් සිදුවුවහොත් දිගටම කරගෙන යයි.
අතහැර දමා ඇති දේ සහ දෝෂයක් මතු කරන්නේ කුමක් ද යන්න පිළිබඳව ඔබට තවත් “සිහින් ධාන්ය” පාලනයක් අවශ්ය නම්, -n1
ධජය එක් නොකළ යුතු අතර නොසලකා හැරිය යුතු දෝෂ පැහැදිලිව නිර්වචනය කළ යුතුය .
| sed 's/^<First characters of the error>.*//'
වැඩ කරන උදාහරණයක් මෙන්න:
pip list --format freeze --outdated | sed 's/=.*//g' | sed 's/^<First characters of the first error>.*//' | sed 's/^<First characters of the second error>.*//' | xargs pip install -U
| sed 's/^<First characters of the error>.*//'
අවශ්ය තරම් ප්රමාණයක් එකතු කළ හැකිය . ඔබට ස්තුතියි!
pip list --outdated | cut -d ' ' -f 1 | xargs -n 1 pip install --upgrade
වඩාත් ශක්තිමත් විසඳුම
Pip3 සඳහා මෙය භාවිතා කරන්න:
pip3 freeze --local |sed -rn 's/^([^=# \t\\][^ \t=]*)=.*/echo; echo Processing \1 ...; pip3 install -U \1/p' |sh
පයිප්ප සඳහා, 3s ඉවත් කරන්න:
pip freeze --local |sed -rn 's/^([^=# \t\\][^ \t=]*)=.*/echo; echo Processing \1 ...; pip install -U \1/p' |sh
OSX ඔඩිටි
OSX, 2017 ජූලි වන විට, ඉතා පැරණි අනුවාදයක් සහිත නැව් (අවුරුදු දුසිමක්). දීර් regular නිත්ය ප්රකාශන ලබා ගැනීම සඳහා, ඉහත විසඳුමේ -r වෙනුවට -E භාවිතා කරන්න.
ජනප්රිය විසඳුම් සමඟ ගැටළු විසඳීම
මෙම විසඳුම හොඳින් සැලසුම් කර 1 පරීක්ෂා කර ඇති අතර වඩාත් ජනප්රිය විසඳුම් සමඟ පවා ගැටලු ඇත.
ඉහත විධානය මඟින් මෙම ගැටළු මුළුමනින්ම ජය ගැනීම සඳහා sed සහ sh සමඟ ඒකාබද්ධව සරලම හා වඩාත්ම අතේ ගෙන යා හැකි පයිප් සින්ටැක්ස් භාවිතා කරයි. Sed ක්රියාකාරිත්වය පිළිබඳ විස්තර 2 වන අනුවාදය සමඟ සෝදිසි කර බැලිය හැකිය .
විස්තර
[1] ලිනක්ස් 4.8.16-200.fc24.x86_64 පොකුරක් තුළ පරීක්ෂා කර නිතිපතා භාවිතා කරන අතර තවත් ලිනක්ස් / යුනික්ස් රස පහක් මත පරීක්ෂා කර ඇත. එය වින්ඩෝස් 10 හි ස්ථාපනය කර ඇති සිග්වින් 64 මත ද ක්රියාත්මක වේ. IOS මත පරීක්ෂණ අවශ්ය වේ.
[2] විධානයෙහි ව්යුහ විද්යාව වඩාත් පැහැදිලිව දැකීමට නම්, ඉහත දැක්වෙන pip3 විධානයට අදහස් දැක්වීම් සමඟ හරියටම සමාන වේ:
# match lines from pip's local package list output
# that meet the following three criteria and pass the
# package name to the replacement string in group 1.
# (a) Do not start with invalid characters
# (b) Follow the rule of no white space in the package names
# (c) Immediately follow the package name with an equal sign
sed="s/^([^=# \t\\][^ \t=]*)=.*"
# separate the output of package upgrades with a blank line
sed="$sed/echo"
# indicate what package is being processed
sed="$sed; echo Processing \1 ..."
# perform the upgrade using just the valid package name
sed="$sed; pip3 install -U \1"
# output the commands
sed="$sed/p"
# stream edit the list as above
# and pass the commands to a shell
pip3 freeze --local |sed -rn "$sed" |sh
[3] පයිතන් හෝ පීඅයිපී සංරචකයක් උත්ශ්රේණිගත කිරීමේදී භාවිතා කරන පයිතන් හෝ පීඅයිපී සංරචකයක් යාවත්කාලීන කිරීම අක්රීය හෝ පැකේජ දත්ත සමුදා දූෂණයට විභව හේතුවක් විය හැකිය.
sed
OS X හි ජුරාසික් BSD මඟහරවා ගත හැකි තවත් ක්රමයක් වන්නේ gsed
ඒ වෙනුවට (GNU sed) භාවිතා කිරීමයි. එය ලබා ගැනීම සඳහා,brew install gnu-sed
මෙය වඩාත් සංක්ෂිප්ත ලෙස පෙනේ.
pip list --outdated | cut -d ' ' -f1 | xargs -n1 pip install -U
පැහැදිලි කිරීම:
pip list --outdated
මේ වගේ රේඛා ලැබෙනවා
urllib3 (1.7.1) - Latest: 1.15.1 [wheel]
wheel (0.24.0) - Latest: 0.29.0 [wheel]
දී cut -d ' ' -f1
, -d ' '
"අවකාශය" පරිසීමකය ලෙස සකසයි, -f1
එයින් අදහස් කරන්නේ පළමු තීරුව ලබා ගැනීමයි.
එබැවින් ඉහත රේඛා බවට පත්වන්නේ:
urllib3
wheel
ඉන්පසු එක් එක් පේළිය එකතු කරන තර්ක ලෙස xargs
විධානය ක්රියාත්මක කිරීමට ඒවා යොමු කරන්නpip install -U
-n1
සෑම විධානයකටම pip install -U
ලබා දෙන තර්ක ගණන 1 ලෙස සීමා කරයි
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
උත්ශ්රේණිගත කිරීමේදී මට එකම ගැටලුවක් තිබුණි. කාරණය නම්, මම කිසි විටෙකත් සියලු පැකේජ යාවත්කාලීන නොකරමි. මම යාවත්කාලීන කරන්නේ මට අවශ්ය දේ පමණි, මන්ද ව්යාපෘතිය බිඳ වැටිය හැකි බැවිනි.
පැකේජය අනුව පැකේජය උත්ශ්රේණිගත කිරීමට සහ අවශ්යතා. Txt ගොනුව යාවත්කාලීන කිරීමට පහසු ක්රමයක් නොතිබූ හෙයින්, මම මෙම නල-යාවත්කාලීන කරන්නා ලියා ඇති අතර එය තෝරාගත් පැකේජ සඳහා (හෝ සියලුම පැකේජ) ඔබේ requirements.txt
ගොනුවේ අනුවාද යාවත්කාලීන කරයි .
ස්ථාපනය
pip install pip-upgrader
භාවිතය
ඔබේ virtualenv සක්රිය කරන්න (වැදගත්, මන්ද එය නවීකරණය කරන ලද පැකේජ වල නව සංස්කරණ වත්මන් virtualenv හි ස්ථාපනය කරන බැවිනි).
cd
ඔබේ ව්යාපෘති නාමාවලියට ඇතුළු වී ධාවනය කරන්න:
pip-upgrade
උසස් භාවිතය
අවශ්යතා සම්මත නොවන ස්ථානයක තබා තිබේ නම්, ඒවා තර්ක ලෙස යවන්න:
pip-upgrade path/to/requirements.txt
ඔබට යාවත්කාලීන කිරීමට අවශ්ය පැකේජය ඔබ දැනටමත් දන්නේ නම්, ඒවා තර්ක ලෙස යවන්න:
pip-upgrade -p django -p celery -p dateutil
ඔබට පූර්ව මුදාහැරීමේ / පශ්චාත්-මුදාහැරීමේ අනුවාදයට යාවත්කාලීන කිරීමට අවශ්ය නම්, --prerelease
ඔබේ විධානයට තර්කය එක් කරන්න.
සම්පූර්ණ අනාවරණය: මම මෙම පැකේජය ලිව්වෙමි.
virtualenv
සක්රීය කර නොමැති නම්pip-upgrade --skip-virtualenv-check
Https://github.com/cakebread/yolk වෙතින් :
$ pip install -U `yolk -U | awk '{print $1}' | uniq`
කෙසේ වෙතත් ඔබ මුලින්ම කහ මදය ලබා ගත යුතුය:
$ sudo pip install -U yolk
@ රමණගේ පිළිතුරේ එක් ලයිනර් අනුවාදය .
python -c 'import pip, subprocess; [subprocess.call("pip install -U " + d.project_name, shell=1) for d in pip.get_installed_distributions()]'
`
නල නිකුත් කිරීමේ සාකච්ඡාවේදී මා සොයාගත් සරලම හා වේගවත්ම විසඳුම නම්:
pip install pipdate
pipdate
මුලාශ්රය: https://github.com/pypa/pip/issues/3819
අමුතු යාවත්කාලීන පැකේජ භාවිතා කරන්න:
pip install -U $(pip freeze | awk -F'[=]' '{print $1}')
වින්ඩෝස් පවර්ෂෙල් යාවත්කාලීන කිරීම
foreach($p in $(pip freeze)){ pip install -U $p.Split("=")[0]}
ඔබට මෙය උත්සාහ කළ හැකිය:
for i in ` pip list|awk -F ' ' '{print $1}'`;do pip install --upgrade $i;done
තරමක් පුදුමාකාර කහ මදය මෙය පහසු කරයි.
pip install yolk3k # don't install `yolk`, see https://github.com/cakebread/yolk/issues/35
yolk --upgrade
කහ මදය පිළිබඳ වැඩි විස්තර සඳහා: https://pypi.python.org/pypi/yolk/0.4.3
ඔබට ප්රයෝජනවත් විය හැකි බොහෝ දේ එයට කළ හැකිය.
yolk
ඇත yolk3k
, ඔබේ මුල් පිළිතුරට නිසැකවම python3 සමඟ ගැටළු ඇති විය.
@ රාමනාගේ පිළිතුර මට, මෙහි සිටින අයට වඩාත්ම හොඳය , නමුත් මට උඩ පන්දු කිහිපයක් එකතු කිරීමට සිදුවිය:
import pip
for dist in pip.get_installed_distributions():
if 'site-packages' in dist.location:
try:
pip.call_subprocess(['pip', 'install', '-U', dist.key])
except Exception, exc:
print exc
මෙම site-packages
ඔවුන් පද්ධතිය වෙබ් අඩවිය පැකේජ බහලුම තුල නොමැති නිසා චෙක්පත්, මාගේ සංවර්ධන පැකේජ ටික. උත්සාහය හැර PyPI වෙතින් ඉවත් කර ඇති පැකේජ මඟ හැරේ.
ndendolith: මම බලාපොරොත්තු වූයේ පහසු දෙයක් pip.install(dist.key, upgrade=True)
ද, නමුත් එය විධාන රේඛාව හැර වෙනත් කිසිවක් භාවිතා කිරීමට අදහස් කළ බවක් නොපෙනේ (ලියකියවිලි අභ්යන්තර API ගැන සඳහන් නොකරයි, සහ නල සංවර්ධකයින් භාවිතා නොකළේ docstrings).
pip
පෙනෙන ආකාරයට පැකේජ /usr/local/lib/python2.7/dist-packages
හෝ ඊට සමාන ය. if
මෙම අවස්ථාවේදී ප්රකාශයේ 'අඩවි පැකේජ' වෙනුවට ඔබට '/ usr / local / lib /' භාවිතා කළ හැකිය.
මෙම pip_upgrade_outdated
රැකියා කරන්නේ. එහි ලියකියවිලි අනුව :
usage: pip_upgrade_outdated [-h] [-3 | -2 | --pip_cmd PIP_CMD]
[--serial | --parallel] [--dry_run] [--verbose]
[--version]
Upgrade outdated python packages with pip.
optional arguments:
-h, --help show this help message and exit
-3 use pip3
-2 use pip2
--pip_cmd PIP_CMD use PIP_CMD (default pip)
--serial, -s upgrade in serial (default)
--parallel, -p upgrade in parallel
--dry_run, -n get list, but don't upgrade
--verbose, -v may be specified multiple times
--version show program's version number and exit
පියවර 1:
pip install pip-upgrade-outdated
පියවර 2:
pip_upgrade_outdated
හරහා යවා එම එක පිප්ස් එකකට ජන කිරීම සඳහා අදින්න-ඉල්ලීම ; මේ අතර මා ලියූ මෙම නල පුස්තකාල විසඳුම භාවිතා කරන්න:
from pip import get_installed_distributions
from pip.commands import install
install_cmd = install.InstallCommand()
options, args = install_cmd.parse_args([package.project_name
for package in
get_installed_distributions()])
options.upgrade = True
install_cmd.run(options, args) # Chuck this in a try/except and print as wanted
මෙය මට වැඩ කරන බවක් පෙනෙන්නට තිබුණි ...
pip install -U $(pip list --outdated|awk '{printf $1" "}')
printf
පැකේජයේ නම් නිසි ලෙස වෙන් කිරීම සඳහා මම පසුව ඉඩක් භාවිතා කළෙමි .
මෙය පයිතන් 3 සඳහා පවර්ෂෙල් විසඳුමකි:
pip3 list --outdated --format=legacy | ForEach { pip3 install -U $_.split(" ")[0] }
සහ පයිතන් 2 සඳහා:
pip2 list --outdated --format=legacy | ForEach { pip2 install -U $_.split(" ")[0] }
මෙය පැකේජ එකින් එක වැඩි දියුණු කරයි. ඉතින් අ
pip3 check
pip2 check
පසුව කිසිදු පරායත්තතාවයක් බිඳී නොමැති බවට වග බලා ගත යුතුය.
කොහොමද:
pip install -r <(pip freeze) --upgrade
වින්ඩෝස් හි කෙටිම හා පහසුම.
pip freeze > requirements.txt && pip install --upgrade -r requirements.txt && rm requirements.txt
මගේ පිටපත:
pip list --outdated --format=legacy | cut -d ' ' -f1 | xargs -n1 pip install --upgrade
මෙය වඩාත් effective ලදායී නොවේද?
pip3 list -o | grep -v -i warning | cut -f1 -d' ' | tr " " "\n" | awk '{if(NR>=3)print}' | cut -d' ' -f1 | xargs -n1 pip3 install -U
pip list -o
යල් පැන ගිය පැකේජ ලැයිස්තුගත කරයි;grep -v -i warning
warning
යාවත්කාලීන කිරීමේදී දෝෂ වළක්වා ගැනීම සඳහා ප්රතිලෝම ගැලපීම ක්රියාත්මක වේcut -f1 -d1' '
පළමු වචනය ලබා දෙයි - යල් පැන ගිය පැකේජයේ නම;tr "\n|\r" " "
බහු cut
රේඛීය ප්රති result ලය තනි රේඛාවක්, අවකාශය වෙන් කළ ලැයිස්තුවක් බවට පරිවර්තනය කරයි ;awk '{if(NR>=3)print}'
ශීර්ෂ රේඛා මඟ හැරේ cut -d' ' -f1
පළමු තීරුව ලබා ගනීxargs -n1 pip install -U
එහි වම්පස ඇති පයිප්පයෙන් තර්ක 1 ක් ගෙන පැකේජ ලැයිස්තුව යාවත්කාලීන කිරීම සඳහා එය විධානය වෙත යවයි.kerberos iwlib PyYAML Could pygpgme Could Could Could ...
සියලුම “හැකි” බව සටහන් කරන්න. නිමැවුම් සිට එම කඳ pip list -o
"අවශ්යතාව <පැකේජය> තෘප්තිමත් කරන ඕනෑම බාගත කිරීම් සොයා ගැනීමට නොහැක" යන
pip list -o
?
# pip list -o; urwid (Current: 1.1.1 Latest: 1.3.0); Could not find any downloads that satisfy the requirement python-default-encoding; pycups (Current: 1.9.63 Latest: 1.9.68); Could not find any downloads that satisfy the requirement policycoreutils-default-encoding; Could not find any downloads that satisfy the requirement sepolicy;
pip install -U $(pip list -o | grep -i current | cut -f1 -d' ' | tr "\n|\r" " ")
. එසේ නොමැතිනම් ඔබට අවශ්ය නොවන එක් පේළියක් පහසුවෙන් මග හැරිය හැකි අතර DrStrangeprk සඳහන් කළ ප්රති result ලය ලබා ගත හැකිය.
xargs
ඒ වෙනුවට භාවිතා කිරීමට මම තරයේ නිර්දේශ කරමි . pip list -o | awk '/Current:/ {print $1}' | xargs -rp -- pip install -U
මෙම -r
බව ධජය වගකීම pip install -U
කිසිදු යල් පැන ගිය පැකේජ පවතී නම් ක්රියාත්මක කළ නොහැකි වනු ඇත. මෙම -p
ධජය ඕනෑම විධානය ක්රියාත්මක පෙර තහවුරු කිරීම සඳහා පරිශීලකගෙන් විමසනු ලැබේ. -n1
එක් එක් පැකේජය වෙන වෙනම ස්ථාපනය කිරීමට පෙර ඔබට ධජය එක් කළ හැකිය .
ඇඩ් රයිට්ස් සහිත පවර්ෂෙල් 5.1 හි එක් පේළියක්, පයිතන් 3.6.5 සහ පයිප් ver 10.0.1:
pip list -o --format json | ConvertFrom-Json | foreach {pip install $_.name -U --no-warn-script-location}
ලැයිස්තුවේ කැඩුණු පැකේජ හෝ විශේෂ රෝද නොමැති නම් එය සුමටව ක්රියා කරයි ...
pip freeze
(වැනිbundle install
හෝnpm shrinkwrap
) සමඟ ලැයිස්තු ගත කළ හැකිය . ටින්කර් කිරීමට පෙර එහි පිටපතක් ඉතිරි කිරීම වඩාත් සුදුසුය.