'Npm स्थापित पैकेज --save-dev' के बराबर क्या है?


200

नोडज में, मैं npm install package --save-devपैकेज में स्थापित पैकेज को बचाने के लिए कर सकता हूं ।

पायथन पैकेज मैनेजर में मैं एक ही चीज कैसे हासिल करूं pip? मैं पैकेज नाम और इसके संस्करण को सहेजना चाहूंगा, जैसे कि पैकेज requirements.pipको स्थापित करने के बाद कुछ ऐसा उपयोग कर रहा हूं pip install package --save-dev requirements.pip


4
pip freeze > requirements.pip
falsetru

5
यह वही नहीं है। npm install package --save-devएक ही समय में नोड_npm आवश्यकताओं फ़ाइल के लिए स्थापना और जोड़ दोनों को जोड़ती है। यह अधिक उपयोगी है। साथ pip freeze1): मैं एक ही बात करने के लिए दो आदेशों क्या करना है pip install package2)pip freeze > requirements.pip
hllau

1
पिप के पास विकल्प के बारे में समस्या--save है।
रटस्की

यदि आवश्यकताओं के लिए setup.py का उपयोग कर रहा है, तो मैंने आपके पैकेज संस्करणों को setup.py में फ्रीज़ करने के लिए एक छोटा मॉड्यूल बनाया है ।
एडमगोल्ड

जवाबों:


164

के साथ एक समकक्ष नहीं है pip

सबसे अच्छा तरीका है pip install package && pip freeze > requirements.txt

आप उनके प्रलेखन पृष्ठ पर सभी उपलब्ध विकल्प देख सकते हैं ।

यदि यह वास्तव में आपको परेशान करता है, तो कस्टम बैश स्क्रिप्ट ( pips) लिखना मुश्किल नहीं होगा, जो -sआपकी requirements.txtफ़ाइल में एक तर्क और जमा देता है ।

संपादित करें 1

इस लेखन एक ऑटो को उपलब्ध कराने में कोई बदलाव नहीं किया गया है के बाद से --save-devविकल्प NPM के समान हालांकि केनेथ रीट्ज (के लेखक requestsऔर कई और अधिक) एक बारे में कुछ और जानकारी जारी किया है बेहतर पिप कार्यप्रवाह बेहतर संभाल करने के लिए pipअद्यतन।

संपादित करें २

ऊपर "बेहतर पाइप वर्कफ़्लो" लेख से जुड़ा हुआ है, जिसे अब pipenvआवश्यकताओं और आभासी वातावरण का प्रबंधन करने के लिए उपयोग करने की सिफारिश की गई है। हाल ही में इसका उपयोग करने के बाद मैं यह बताना चाहता हूं कि संक्रमण कितना सरल है:

स्थापित करें pipenv(मैक पर)

brew install pipenv

pipenvबनाता है और यह एक मौजूदा के साथ एक परियोजना में अपने स्वयं के आभासी वातावरण का प्रबंधन करता है requirements.txt, सभी आवश्यकताओं को स्थापित करने (मैं Python3.7 का उपयोग करें, लेकिन आप --threeअगर आप नहीं हटा सकते हैं) के रूप में सरल है:

pipenv --three install

Virtualenv को कमांड चलाने के लिए सक्रिय करना भी आसान है

pipenv shell

आवश्यकताओं को स्थापित करने से स्वचालित रूप से अपडेट हो जाएगा PipfileऔरPipfile.lock

pipenv install <package>

आउट-ऑफ-डेट पैकेज अपडेट करना भी संभव है

pipenv update

मैं अत्यधिक इसे बाहर से जाँचने की सलाह देता हूँ, खासकर अगर npmयह एक पृष्ठभूमि से आ रहा है क्योंकि यह एक समान अनुभव है package.jsonऔरpackage-lock.json


22
ध्यान दें कि यह निर्भरता की निर्भरता को भी बचाएगा, जो समय के साथ ज़रूरत नहीं हो सकती है क्योंकि निर्भरता ने इसका उपयोग छोड़ दिया है।
पैट्रिक बासुत

यह मूल प्रश्न के - दास-देव पहलू को संबोधित करने के लिए प्रतीत नहीं होता है जो आपको स्थानीय विकास बनाम उत्पादन के लिए अलग-अलग निर्भरता रखने की अनुमति देता है। आप इसे पिपेनव के साथ कैसे प्राप्त कर सकते हैं?
जजनाग

1
@ जजनाग pipenvआपको कमांड लाइन से dev-packagesअपने Pipfileऔर / या उपयोग --dev(या -d) में निर्दिष्ट करने की अनुमति देता है । जैसेpipenv install --dev nose2
इवान

39

यह सरल रेखा एक प्रारंभिक बिंदु है। आप आसानी से लाइन में पैकेज का पुन: उपयोग करने के लिए एक बैश कमांड बना सकते हैं।

pip install PACKAGE && pip freeze | grep PACKAGE >> requirements.txt

सादा समारोह के उदाहरण के लिए @devsnd का धन्यवाद:

function pip-install-save { 
    pip install $1 && pip freeze | grep $1 >> requirements.txt
}

इसका उपयोग करने के लिए, बस चलाएं:

pip-install-save some-package

मेरे पांच सेंटP=Flask pip install $P && pip freeze | grep $P >> requirements.txt
जीबीरियन

4

मैं अजगर पैकेज है कि वास्तविक इर्द-गिर्द घूमती बना लिया है pipकहा जाता pipm । सभी pipकमांड काम करेंगे जैसा कि है, साथ ही वे आवश्यकताओं फ़ाइल में परिलक्षित होगा। इसके विपरीत pip-save(समान उपकरण जो मुझे मिला और उपयोग करने में सक्षम नहीं था) यह कई फाइलों और वातावरण (परीक्षण, देव, उत्पादन, आदि) को संभाल सकता है। इसमें आपकी सभी निर्भरियों में से किसी एक को अपग्रेड करने की भी आज्ञा है।

स्थापना

pipm install pkg-name

विकास निर्भरता के रूप में स्थापना

pipm install pkg-name --dev

परीक्षण निर्भरता के रूप में स्थापना

pipm install pkg-name --test

निष्कासन

pipm uninstall pkg-name

अपने सभी निर्भरता को अद्यतन करें

pipm update

आवश्यकताओं फ़ाइल से अपने सभी निर्भरता स्थापित करें

pipm install

विकास निर्भरता सहित

pipm install --dev


3

अपडेट: जाहिरा तौर पर, पिपेनव आधिकारिक तौर पर पायथन अनुरक्षकों द्वारा समर्थित नहीं है , और पहले से जुड़ा हुआ पृष्ठ एक अलग संगठन के स्वामित्व में है। टूल के पास इसके पेशेवरों और विपक्ष हैं, लेकिन नीचे का समाधान अभी भी उस परिणाम को प्राप्त करता है जो ओपी मांग रहा है।

पिपेनव एक निर्भरता प्रबंधन उपकरण है जो लपेटता है pipऔर, अन्य चीजों के साथ, जो आप पूछ रहे हैं वह प्रदान करता है:

https://pipenv.kennethreitz.org/en/latest/#example-pipenv-workflow

$ pipenv install <package>

यदि कोई मौजूद नहीं है, तो यह एक Pipfile का निर्माण करेगा। यदि कोई मौजूद है, तो यह आपके द्वारा प्रदान किए गए नए पैकेज के साथ स्वचालित रूप से संपादित हो जाएगा।

A Pipfileएक सीधा समतुल्य है package.json, जबकि से Pipfile.lockमेल खाता है package-lock.json


2

मैंने कमांड स्थापित / अनइंस्टॉल करने के विकल्प को pipजोड़ने के लिए एक त्वरित हैक किया --save

कृपया इस हैक के बारे में अधिक जानकारी के लिए मेरे ब्लॉग पर एक नज़र डालें: http://blog.abhiomkar.in/2015/11/12/pip-save-npm-like-behaviour-to-pip/

स्थापना (GitHub): https://github.com/abhiomkar/pip-save

उम्मीद है की यह मदद करेगा।


1

आप इसे मैन्युअल रूप से मेकफाइल (या टेक्स्ट फ़ाइल में सहेज सकते हैं और फिर अपने मेकफाइल में आयात कर सकते हैं):


PYTHON=.venv/bin/python # path to pyphon
PIP=.venv/bin/pip # path to pip
SOURCE_VENV=. .venv/bin/activate


install:
    virtualenv .venv
    $(SOURCE_VENV) && $(PIP) install -e PACKAGE
    $(SOURCE_VENV) && $(PIP) install -r requirements.txt # other required packages

और फिर बस चलाओ make install


मैं इस दृष्टिकोण से पूरी तरह सहमत हूं।
एलिजोन्मार्क

1

मैं पैकेज स्थापित करने और इसके संस्करण को बचाने के लिए इस छोटी कमांड लाइन का उपयोग कर रहा हूं requirements.txt: pkg=package && pip install $pkg && echo $(pip freeze | grep -i $pkg) >> requirements.txt


0

ऐसा करने के लिए शेल फ़ंक्शन कैसे करें? नीचे दिए गए कोड को अपने ~/.profileया में जोड़ें~/.bashrc

pips() {
    local pkg=$1

    if [ -z "$1" ]; then
        echo "usage: pips <pkg name>"
        return 1
    fi

    local _ins="pip install $pkg"
    eval $_ins
    pip freeze | grep $pkg -i >> requirements.txt
}

फिर उसे चलाएं source ~/.profileया source ~/.bashrcअपने वर्तमान टर्मिनल पर आयात करें

जब आप एक पैकेज को स्थापित और सहेजना चाहते हैं, उदाहरण के लिए, बस चलाएं pips requests। पैकेज स्थापित होने के बाद, इसका संस्करण requirements.txtआपकी वर्तमान निर्देशिका में सहेजा जाएगा ।

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