स्थापना के माध्यम से जाने के बिना, मैं जल्दी से उन सभी पैकेजों को देखना चाहता हूं जो pip install
स्थापित होंगे।
स्थापना के माध्यम से जाने के बिना, मैं जल्दी से उन सभी पैकेजों को देखना चाहता हूं जो pip install
स्थापित होंगे।
जवाबों:
स्वीकृत उत्तर अब पाइप के अधिक वर्तमान संस्करणों के लिए प्रासंगिक नहीं है और कई टिप्पणियों के बिना कोई तत्काल उत्तर नहीं देता है इसलिए मैं एक अद्यतन उत्तर प्रदान कर रहा हूं।
यह पाइपलाइन संस्करणों 8.1.2 , 9.0.1 , 10.0.1 और 18.1 के साथ परीक्षण किया गया था ।
लिनक्स उपयोग पर अपनी वर्तमान निर्देशिका को अव्यवस्थित किए बिना आउटपुट प्राप्त करने के लिए
pip download [package] -d /tmp --no-binary :all: -v
-d
बताता है कि निर्देशिका को डाउनलोड करने के लिए फ़ाइलों को डाल देना चाहिए।
बेहतर है, केवल इस स्क्रिप्ट का उपयोग तर्क के साथ किया जा रहा है पैकेज नाम केवल आउटपुट के रूप में निर्भरता प्राप्त करने के लिए:
#!/bin/sh
PACKAGE=$1
pip download $PACKAGE -d /tmp --no-binary :all:-v 2>&1 \
| grep Collecting \
| cut -d' ' -f2 \
| grep -Ev "$PACKAGE(~|=|\!|>|<|$)"
requirements.txt
:< requirements.txt egrep -v "^#" | egrep -v "^$" | xargs -L 1 -I % sh -c 'echo %; echo "======"; ./deps.sh %; echo "";
--no-binary :all:
यह एक अच्छा विचार नहीं है। एक परियोजना जो केवल पहिया भेजती है और sdist विफल होती है।
मेरे प्रोजेक्ट जॉन्नीदीप को देखें !
स्थापना:
pip install johnnydep
उपयोग उदाहरण:
$ johnnydep requests
name summary
------------------------- ----------------------------------------------------------------------
requests Python HTTP for Humans.
├── certifi>=2017.4.17 Python package for providing Mozilla's CA Bundle.
├── chardet<3.1.0,>=3.0.2 Universal encoding detector for Python 2 and 3
├── idna<2.7,>=2.5 Internationalized Domain Names in Applications (IDNA)
└── urllib3<1.23,>=1.21.1 HTTP library with thread-safe connection pooling, file post, and more.
एक अधिक जटिल पेड़:
$ johnnydep ipython
name summary
-------------------------------- -----------------------------------------------------------------------------
ipython IPython: Productive Interactive Computing
├── appnope Disable App Nap on OS X 10.9
├── decorator Better living through Python with decorators
├── jedi>=0.10 An autocompletion tool for Python that can be used for text editors.
│ └── parso==0.1.1 A Python Parser
├── pexpect Pexpect allows easy control of interactive console applications.
│ └── ptyprocess>=0.5 Run a subprocess in a pseudo terminal
├── pickleshare Tiny 'shelve'-like database with concurrency support
├── prompt-toolkit<2.0.0,>=1.0.4 Library for building powerful interactive command lines in Python
│ ├── six>=1.9.0 Python 2 and 3 compatibility utilities
│ └── wcwidth Measures number of Terminal column cells of wide-character codes
├── pygments Pygments is a syntax highlighting package written in Python.
├── setuptools>=18.5 Easily download, build, install, upgrade, and uninstall Python packages
├── simplegeneric>0.8 Simple generic functions (similar to Python's own len(), pickle.dump(), etc.)
└── traitlets>=4.2 Traitlets Python config system
├── decorator Better living through Python with decorators
├── ipython-genutils Vestigial utilities from IPython
└── six Python 2 and 3 compatibility utilities
johnnydep
खुद को स्थापित करना निर्भरता स्थापित करता है।
यदि और केवल यदि पैकेज स्थापित है, तो आप उपयोग कर सकते हैं pip show <package>
। के लिए देखो Requires:
उत्पादन के अंत में दायर किया। स्पष्ट रूप से, यह आपकी आवश्यकता को तोड़ता है लेकिन फिर भी उपयोगी हो सकता है।
उदाहरण के लिए:
$ pip --version
pip 7.1.0 [...]
$ pip show pytest
---
Metadata-Version: 2.0
Name: pytest
Version: 2.7.2
Summary: pytest: simple powerful testing with Python
Home-page: http://pytest.org
Author: Holger Krekel, Benjamin Peterson, Ronny Pfannschmidt, Floris Bruynooghe and others
Author-email: holger at merlinux.eu
License: MIT license
Location: /home/usr/.tox/develop/lib/python2.7/site-packages
Requires: py
नोट: इस उत्तर में प्रयुक्त सुविधा को 2014 में हटा दिया गया था और 2015 में हटा दिया गया था । कृपया अन्य उत्तर देखें जो आधुनिक पर लागू होते हैं
pip
।
निकटतम आप सीधे पाइप के साथ प्राप्त कर सकते हैं --no-install
तर्क का उपयोग करके :
pip install --no-install <package>
उदाहरण के लिए, अजवाइन स्थापित करते समय यह आउटपुट है:
Downloading/unpacking celery
Downloading celery-2.5.5.tar.gz (945Kb): 945Kb downloaded
Running setup.py egg_info for package celery
no previously-included directories found matching 'tests/*.pyc'
no previously-included directories found matching 'docs/*.pyc'
no previously-included directories found matching 'contrib/*.pyc'
no previously-included directories found matching 'celery/*.pyc'
no previously-included directories found matching 'examples/*.pyc'
no previously-included directories found matching 'bin/*.pyc'
no previously-included directories found matching 'docs/.build'
no previously-included directories found matching 'docs/graffles'
no previously-included directories found matching '.tox/*'
Downloading/unpacking anyjson>=0.3.1 (from celery)
Downloading anyjson-0.3.3.tar.gz
Running setup.py egg_info for package anyjson
Downloading/unpacking kombu>=2.1.8,<2.2.0 (from celery)
Downloading kombu-2.1.8.tar.gz (273Kb): 273Kb downloaded
Running setup.py egg_info for package kombu
Downloading/unpacking python-dateutil>=1.5,<2.0 (from celery)
Downloading python-dateutil-1.5.tar.gz (233Kb): 233Kb downloaded
Running setup.py egg_info for package python-dateutil
Downloading/unpacking amqplib>=1.0 (from kombu>=2.1.8,<2.2.0->celery)
Downloading amqplib-1.0.2.tgz (58Kb): 58Kb downloaded
Running setup.py egg_info for package amqplib
Successfully downloaded celery anyjson kombu python-dateutil amqplib
बेशक, यह अस्थायी फ़ाइलों के रूप में चारों ओर कुछ गड्ढा छोड़ देता है, लेकिन यह लक्ष्य को पूरा करता है। यदि आप virtualenv (जो आपको होना चाहिए) के साथ कर रहे हैं, तो <virtualenv root>/build
डायरेक्टरी को हटाना उतना ही आसान है ।
rpm
या dpkg
जहां आप शीर्ष पर एक मेटाडेटा इंडेक्स बनाते हैं और उस पर क्वेरी करते हैं pip
और pypi
उस तरह से काम नहीं करते हैं। इसलिए हमें प्रत्येक आवश्यकता को पार करना होगा।
pip --no-install celery
लेकिन मुझे त्रुटि प्राप्त हुई no such option: --no-install
(पाइप 1.2.1)
pip install --no-install celery
--no-install
ध्वज को हटा दिया गया है।
कमांड pip install <package> --download <path>
का उपयोग किया जाना चाहिए, जैसा कि @radtek द्वारा टिप्पणियों में उल्लेख किया गया है, क्योंकि 7.0.0 (2015-05-21) के रूप में, -no- स्थापित से हटा दिया गया है pip
। यह आवश्यक निर्भरता को डाउनलोड करेगा <path>
।
--download
रूप में अच्छी तरह से पदावनत किया गया है। विहित आदेश अब प्रतीत होता है pip download <package> -d /tmp --no-binary :all:
के रूप में सुझाव दिया द्वारा कार्ड Cheat ।
एक अन्य विकल्प के लिए इसी तरह एक सहायक स्क्रिप्ट का उपयोग करने के लिए है इस एक जो का उपयोग करता है pip.req.parse_requirements
पार्स करने के लिए एपीआई requirements.txt
फ़ाइलें और एक distutils.core.setup
पार्स करने के लिए प्रतिस्थापन setup.py
फ़ाइलें।
मैं @onnovalkering से एक वैकल्पिक समाधान उद्धृत करता हूं :
PyPi पैकेज मेटाडेटा के साथ एक JSON समापन बिंदु प्रदान करता है:
>>> import requests >>> url = 'https://pypi.org/pypi/{}/json' >>> json = requests.get(url.format('pandas')).json() >>> json['info']['requires_dist'] ['numpy (>=1.9.0)', 'pytz (>=2011k)', 'python-dateutil (>=2.5.0)'] >>> json['info']['requires_python'] '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*'
विशिष्ट पैकेज संस्करण के लिए, URL में एक अतिरिक्त संस्करण खंड जोड़ें:
https://pypi.org/pypi/pandas/0.22.0/json
अगर आप conda ( @ShpielMeister द्वारा सुझाए गए ) का उपयोग कर रहे हैं , तो भी आप उपयोग कर सकते हैं:
conda info package==X.X.X
किसी विशेष संस्करण के लिए निर्भरता सहित जानकारी प्रदर्शित करने के लिए या:
conda info package
उस पैकेज के सभी समर्थित संस्करणों के बारे में निर्भरता सहित जानकारी प्रदर्शित करने के लिए।
boto3
, आवश्यकताएं शून्य हैं, लेकिन यह एक परियोजना है, जिसमें निश्चित रूप से मेटाडेटा में निर्भरताएं हैं ।