python - পিপ সঙ্গে সব প্যাকেজ আপগ্রেড




15 Answers

আপনি নিম্নলিখিত পাইথন কোড ব্যবহার করতে পারেন। পাইপ ফ্রিজের বিপরীতে, এটি সতর্কতা এবং ফিক্সমে ত্রুটিগুলি মুদ্রণ করবে না। পিপ জন্য <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)
python pip

pip দিয়ে একসাথে সব পাইথন প্যাকেজ আপগ্রেড করা সম্ভব?

উল্লেখ্য যে অফিসিয়াল ইস্যু ট্র্যাকারের জন্য এটির জন্য একটি বৈশিষ্ট্য অনুরোধ রয়েছে




উইন্ডোজ কাজ করে। অন্যদের জন্য ভাল হতে হবে। ($ কোন কমান্ড প্রম্পটে আপনি যা ডিরেক্টরীতে আছেন, যেমন। C: / ব্যবহারকারী / ব্যবহারকারীর নাম>)

করা

$ pip freeze > requirements.txt

টেক্সট ফাইল খুলুন, == with> = প্রতিস্থাপন করুন

তারপর কি

$ pip install -r requirements.txt --upgrade

আপগ্রেড স্থগিত করার নির্দিষ্ট প্যাকেজটির সাথে যদি আপনার কোন সমস্যা থাকে (কখনও কখনও numpy), শুধুমাত্র ডিরেক্টরী ($) এ যান, নামটি মন্তব্য করুন (এটির আগে একটি # যোগ করুন) এবং আবার আপগ্রেডটি চালান। আপনি পরে যে অধ্যায় uncomment করতে পারেন। এটি পাইথন গ্লোবাল পরিবেশের অনুলিপি করার জন্যও দুর্দান্ত।

আমি পাইপ রিভিউ পদ্ধতি পছন্দ করি:

py2
$ pip install pip-review

$ pip-review --local --interactive

py3
$ pip3 install pip-review

$ py -3 -m pip_review --local --interactive

আপনি সমস্ত প্যাকেজ আপগ্রেড করতে 'a' নির্বাচন করতে পারেন; যদি একটি আপগ্রেড ব্যর্থ হয়, এটি আবার চালান এবং এটি পরবর্তীতে চলতে থাকে।




আপনি শুধু পুরানো প্যাকেজ মুদ্রণ করতে পারেন

pip freeze | cut -d = -f 1 | xargs -n 1 pip search | grep -B2 'LATEST:'



এই বিকল্পটি আমাকে আরো সহজবোধ্য এবং পাঠযোগ্য মনে হয়:

pip install -U `pip list --outdated | tail -n +3 | awk '{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

tail -n +3 প্রথম দুটি লাইন awk '{print $1}' এবং awk '{print $1}' প্রতিটি লাইনের প্রথম শব্দটি নির্বাচন করে।




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 `pip freeze -l | cut --fields=1 -d = -` --upgrade



আপনি এটি চেষ্টা করতে পারেন:

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

আপনি সম্ভবত দরকারী খুঁজে পাবেন অনেক কিছু করতে পারেন।




এই আমার জন্য কাজ করলো ...

pip install -U $(pip list --outdated|awk '{printf $1" "}')

প্যাকেজ নামগুলি সঠিকভাবে পৃথক করার পরে আমি একটি স্থান দিয়ে printf ব্যবহার করি।




আমার স্ক্রিপ্ট:

pip list --outdated --format=legacy | cut -d ' ' -f1 | xargs -n1 pip install --upgrade



import pip
pkgs = [p.key for p in pip.get_installed_distributions()]
for pkg in pkgs:
    pip.main(['install', '--upgrade', pkg])

অথবা এমনকি:

import pip
commands = ['install', '--upgrade']
pkgs = commands.extend([p.key for p in pip.get_installed_distributions()])
pip.main(commands)

ক্রমাগত একটি শেল চালু করা হয় না হিসাবে দ্রুত কাজ করে। আমি এই জিনিসটি আসলে আরও গতিতে বাড়ানোর জন্য পুরানো তালিকাটি ব্যবহার করতে সময় খুঁজে পেতে চাই।




awk আপডেট প্যাকেজ ব্যবহার করুন: pip install -U $(pip freeze | awk -F'[=]' '{print $1}')




ক্ষমতাধর 5.1 মধ্যে এক লাইন অ্যাডমিন অধিকার, পাইথন 3.6.5 এবং পিপ ভের 10.0.1 সঙ্গে:

pip list -o --format json | ConvertFrom-Json | foreach {pip install $_.name -U --no-warn-script-location}

তালিকায় কোন ভাঙ্গা প্যাকেজ বা বিশেষ চাকা নেই যদি এটি মসৃণভাবে কাজ করে ...




আমি রমনা কোড চেষ্টা করেছি এবং আমি উবুন্টুতে খুঁজে পেয়েছি প্রত্যেক কমান্ডের জন্য আপনাকে sudo লিখতে হবে। এখানে আমার স্ক্রিপ্ট যা উবুন্টু 13.10 এ জরিমানা করে:

#!/usr/bin/env python
import pip
from subprocess import call

for dist in pip.get_installed_distributions():
    call("sudo pip install --upgrade " + dist.project_name, shell=True)



Related


Tags

python   pip