मैं पायथन पैकेज को कैसे अपडेट करूं?


234

मैं Ubuntu 9:10 चला रहा हूं और M2Crypto नामक एक पैकेज स्थापित किया गया है (संस्करण 0.19.1 है)। मुझे M2Crypto पैकेज (0.20.2) के नवीनतम संस्करण को डाउनलोड, निर्माण और इंस्टॉल करना होगा।

0.19.1 पैकेज में कई स्थानों पर फ़ाइलें हैं (/ usr / share / pysared और /usr/lib/pymodules.python2.6.6)।

मैं 0.20.2 स्थापित करने से पहले अपने सिस्टम से संस्करण 0.19.1 को पूरी तरह से कैसे अनइंस्टॉल कर सकता हूं?

जवाबों:


54

आप पाइप की तरह अजगर पैकेज मैनेजर में देखना चाहते हैं । यदि आप पायथन पैकेज प्रबंधक का उपयोग नहीं करना चाहते हैं, तो आपको M2Crypto को डाउनलोड करने और पुराने इंस्टॉलेशन को बनाने / संकलित करने में सक्षम होना चाहिए।


1
धन्यवाद। आपने जो कहा काम किया। मैंने 0.19.1 को अनइंस्टॉल करने की आवश्यकता के बिना 0.20.2 बनाया और स्थापित किया।
थॉमसन

461

सबसे अच्छा तरीका है कि मैं इस आदेश को टर्मिनल से चला रहा हूं

sudo pip install [package_name] --upgrade

sudo कार्रवाई की पुष्टि करने के लिए अपना रूट पासवर्ड दर्ज करने के लिए कहेंगे।


नोट: कुछ उपयोगकर्ताओं के बजाय pip3 स्थापित हो सकता है। उस मामले में, का उपयोग करें

sudo pip3 install [package_name] --upgrade

4
और अगर आप प्रमाणीकरण के बिना एक प्रॉक्सी का उपयोग कर रहे हैं: sudo pip install [package] --upgrad --proxy = पता: port
lmsasu

32
मैं इस जवाब के लिए यहां आया था। मैंने कोशिश की pip updateऔर pip upgradeतब तक के लिए बेताब था, जब तक मैंने --upgradeयहां नहीं देखा । वे एक pip upgradeआदेश क्यों नहीं जोड़ते ?
लार्स ब्लमबर्ग

9
यह वास्तव में एक अच्छी तरह से छिपी हुई विशेषता है।
ओटोकन

1
विंडोज उपयोगकर्ताओं के लिए: sudoआवश्यक नहीं है।
स्टेवोइसाक

2
इसका उत्तर # 1
कॉर्ड कलडेमेयर

48

स्वचालित रूप से सभी पुराने पैकेजों को अपग्रेड करने के लिए (जो कि पाइप का उपयोग करके स्थापित किया गया था), बस स्क्रिप्ट बलो को चलाएं,

pip install $(pip list --outdated | awk '{ print $1 }') --upgrade

यहां, pip list --outdatedसभी आउट डेटेड पैकेजों को सूचीबद्ध करेंगे और फिर हम इसे जागृत करने के लिए पाइप करेंगे, इसलिए यह केवल नामों को प्रिंट करेगा। फिर, $(...)इसे एक चर बना देगा और फिर, सब कुछ ऑटो मैटिक किया जाता है। सुनिश्चित करें कि आपके पास अनुमतियाँ हैं। ( sudoअगर आपको भ्रम हो तो पाइप डालने से पहले) मैं एक स्क्रिप्ट लिखूंगा जिसका नाम pip-upgrade कोड है,

#!/bin/bash
sudo pip install $(pip list --outdated | awk '{ print $1 }') --upgrade

फिर इसे तैयार करने के लिए स्क्रिप्ट की निम्नलिखित पंक्तियों का उपयोग करें:

sudo chmod +x pip-upgrade
sudo cp pip-upgrade /usr/bin/

फिर, बस हिट pip-upgradeऔर वॉइला!


मुझे अंतिम ब्रैकेट की ओर इशारा करते हुए एक सिंटैक्स त्रुटि मिली:awk: cmd. line:1: { print $1 })
TT--

7
@ टीटी के नए संस्करण pipआपको --format=legacyविकल्प का उपयोग करने की आवश्यकता है, अर्थात pip list --outdated --format=legacy। FYI करें हर कोई: नेत्रहीन रूप से पाइप के माध्यम से सभी मॉड्यूल को अपडेट करना कई लिनक्स डिस्ट्रोस पर काफी खतरनाक हो सकता है। उनमें से कई डिस्ट्रो पैकेज के माध्यम से विशिष्ट अजगर मॉड्यूल प्रदान करते हैं और उनमें से कुछ डिस्ट्रो (विशेष रूप से आरएचईएल) हार्ड को तोड़ सकते हैं यदि आप गंदगी को अपडेट कर रहे हैं ... इस तथ्य का उल्लेख नहीं करने के लिए कि यदि आप पाइप के माध्यम से अपडेट करते हैं, तो डिस्ट्रो पैकेज आपके परिवर्तनों को वापस कर सकता है। भविष्य का अद्यतन।
rsaw

धन्यवाद @ अरसा वह सही है कि आपको अपने पाइप कमांड को --user ऑप्शन
फहीम

1
मुझे यह उत्तर पसंद है, हालांकि मैं सब कुछ स्वचालित रूप से अपडेट करने में खतरे को समझता हूं। वैसे भी, चूंकि विरासत में पाइप 19.0 पाइप स्थापित $ (पाइप लिस्ट - आउटडेटेड --फॉर्मैट = कॉलम | grep -v "पैकेज" | grep -v - ---- | awk '{प्रिंट $ 1}' -) को विरासत में लिया गया है। -अपग्रेड
माइक वी।

2
एक Ubuntu 18.04 venv अनुकूलन पर काम करने के लिए निम्नानुसार है:pip install $(pip list --outdated | tail +3 | grep -v sdist | awk '{ print $1 }') --upgrade
अलेक्जेंडर रीमेश

34
  1. वाया विंडोज़ कमांड प्रॉम्प्ट, रन: pip list --outdated आपको पुराने पैकेज की सूची मिलेगी।
  2. रन: pip install [package] --upgrade यह [package]पिछले संस्करण को अपग्रेड और अनइंस्टॉल करेगा।

पाइप को अद्यतन करने के लिए:

py -m pip install --upgrade pip

फिर, यह पाइप के पिछले संस्करण की स्थापना रद्द करेगा और पाइप के नवीनतम संस्करण को स्थापित करेगा।


29
  • विधि 1: एक-एक करके मैन्युअल रूप से अपग्रेड करें

pip install package_name -U
  • विधि 2: एक बार में सभी को अपग्रेड करें (उच्च पैकेज रोलबैक यदि कुछ पैकेज अपग्रेड करने में विफल रहता है

pip install $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1) --upgrade
  • विधि 3: लूप का उपयोग करके एक-एक करके अपग्रेड करें

for i in  $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1); do pip install $i --upgrade; done


9

पिपलग्रेड का उपयोग करें !

$ pip install pipupgrade
$ pipupgrade --latest --interactive

pipupgrad एक requirements.txtफ़ाइल से आपके सिस्टम, स्थानीय या पैकेज को अपग्रेड करने में मदद करता है ! यह चुनिंदा रूप से उन्नयन पैकेज भी बदलता है जो परिवर्तन को नहीं तोड़ता है। Python2.7 +, Python3.4 + और pip9 +, pip10 +, pip18 + के साथ संगत।

यहां छवि विवरण दर्ज करें

नोट: मैं उपकरण का लेखक हूं।


1
जब भी मैं इस उपकरण का उपयोग करता हूं मुझे प्रतिक्रिया मिलती है "[0; 93mChecking ... [0m" और यह कुछ भी नहीं करने के लिए आगे बढ़ता है। क्या मैं इसका गलत इस्तेमाल कर रहा हूं?
वायलैटिक

मैं MacPorts के साथ एक मैक का उपयोग करता हूं। पायथन 3.7 के साथ पाइपपग्रेड ने केवल 50 में से 5 पैकेजों के लिए काम किया, बाकी के लिए मुझे इसका उपयोग करना पड़ा: आई फॉर आई pip3.7 list --outdated | sed -n -e '3,$s/ .*//p'; pip3.7 स्थापित करें - $ i का नवीनीकरण करें; किया
माइकल ड्रेहर

4

पैकेज मूल रूप से कैसे स्थापित किया गया था? यदि यह एप्ट के माध्यम से होता, तो आप बस कर सकते थेapt-get remove python-m2crypto

यदि आपने इसे easy_install के माध्यम से स्थापित किया है, तो मुझे पूरा यकीन है कि केवल एक ही तरीका है कि आप फाइलों को lib, साझा, आदि के तहत कचरा कर सकते हैं।

भविष्य में मेरी सिफारिश? अपने पैकेजों को स्थापित करने के लिए पाइप जैसी किसी चीज़ का उपयोग करें । इसके अलावा, आप virtualenv नामक किसी चीज़ में देख सकते हैं, इसलिए आपके पैकेज केवल-पर्यावरणीय आधार पर संग्रहीत होते हैं, केवल रूट पर।

पाइप के साथ, यह बहुत आसान है:

pip install m2crypto

लेकिन आप सही पते के साथ git, svn, आदि रिपोज से भी इंस्टॉल कर सकते हैं। यह सब पाइप प्रलेखन में समझाया गया है


जिस तरह से वह बताता है कि फ़ाइलें कहाँ स्थापित की गई हैं, यह इंगित करता है कि पैकेज उपयुक्त पैकेज प्रबंधक का उपयोग करके स्थापित किया गया था - क्योंकि (डेबियन AFAIK पर) उपयुक्त वह सूचीबद्ध किए गए 2 स्थानों के तहत अजगर पैकेज स्थापित करेगा - / साझा / pysared / .. साझा कोड के लिए है। संस्करण विशिष्ट भागों के लिए संस्करणों और / usr / lib / .. के पार। आसान स्थापित / दूसरी ओर पाइप का उपयोग करेगा / usr / स्थानीय / lib / .. - तो जैसा कि आप ने कहा - बस apt-get remove उसे किया होगा।
बेसल शिशानी


3

Juptyer नोटबुक में, एक बहुत ही सरल तरीका है

!pip install <package_name> --upgrade

तो, आपको बस वास्तविक पैकेज नाम से बदलने की आवश्यकता है।


2

सभी पुराने पैकेज प्राप्त करें और निम्नलिखित कमांड के साथ एक बैच फ़ाइल बनाएं। प्रत्येक पुराने पैकेज के लिए xxx-upgrad स्थापित करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.