Kuruluma geçmeden, kurulacak tüm paketleri hızlıca görmek istiyorum pip install
.
Kuruluma geçmeden, kurulacak tüm paketleri hızlıca görmek istiyorum pip install
.
Yanıtlar:
Kabul edilen yanıt artık pip'in daha güncel sürümleri için geçerli değildir ve birden fazla yorumu incelemeden hemen yanıt vermez, bu nedenle güncellenmiş bir yanıt veriyorum.
Bu, pip sürüm 8.1.2 , 9.0.1 , 10.0.1 ve 18.1 ile test edildi .
Linux'ta mevcut dizininizi karıştırmadan çıktı almak için kullanın
pip download [package] -d /tmp --no-binary :all: -v
-d
pip'e indirmenin dosyaları koyması gerektiğini söyler.
Daha iyisi, çıktı olarak yalnızca bağımlılıkları almak için bağımsız değişken paket adı olan bu komut dosyasını kullanın:
#!/bin/sh
PACKAGE=$1
pip download $PACKAGE -d /tmp --no-binary :all:-v 2>&1 \
| grep Collecting \
| cut -d' ' -f2 \
| grep -Ev "$PACKAGE(~|=|\!|>|<|$)"
Ayrıca burada mevcuttur .
requirements.txt
:< requirements.txt egrep -v "^#" | egrep -v "^$" | xargs -L 1 -I % sh -c 'echo %; echo "======"; ./deps.sh %; echo "";
--no-binary :all:
iyi bir fikir değildir. SDist değil, sadece tekerlek sevk eden bir proje başarısız olur.
Benim projeme bak johnnydep !
Kurulum:
pip install johnnydep
Kullanım örneği:
$ 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.
Daha karmaşık bir ağaç:
$ 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
kendini kurmak bağımlılıkları kurar.
Sadece ve ancak paket kuruluysa kullanabilirsiniz pip show <package>
. Requires:
Çıktının sonunda dosyalanmış olanı arayın . Açıkçası, bu ihtiyacınızı ortadan kaldırır ancak yine de yararlı olabilir.
Örneğin:
$ 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
Not: Bu yanıt kullanılan özellik oldu 2014 yılında kaldırılmış ve 2015 yılında kaldırıldı . Lütfen modern için geçerli olan diğer cevaplara bakın
pip
.
Pip ile doğrudan elde edebileceğiniz en yakın --no-install
argümanı kullanmaktır :
pip install --no-install <package>
Örneğin, kereviz kurarken çıkan çıktı budur:
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
Kuşkusuz, bu, geçici dosyalar biçiminde bir miktar boşluk bırakıyor, ancak hedefe ulaşıyor. Bunu virtualenv ile yapıyorsanız (yapmanız gereken), temizleme <virtualenv root>/build
dizini kaldırmak kadar kolaydır .
rpm
veya dpkg
üstte bir meta veri dizini oluşturduğunuzdan pip
ve pypi
bunu sorgulayın ve bu şekilde çalışmayın. Bu yüzden her bir gereksinimi yerine getirmemiz gerekiyor.
pip --no-install celery
ama hatayı alıyorum no such option: --no-install
(pip 1.2.1)
pip install --no-install celery
--no-install
bayrak kullanımdan kaldırıldı.
Komut pip install <package> --download <path>
@radtek yorumlarına belirtildiği gibi, --no-install edilir 7.0.0 (2015-05-21) itibariyle beri kullanılması gerektiğini kaldırıldı dan pip
. Bu, gereken bağımlılıkları indirecektir <path>
.
--download
kullanımdan kaldırıldı. Kanonik komut artık The Card Cheat tarafından önerildiğipip download <package> -d /tmp --no-binary :all:
gibi görünüyor .
Başka bir seçenek benzer bir yardımcı komut dosyası kullanmaktır bu bir kullanır pip.req.parse_requirements
ayrıştırma için API requirements.txt
dosya ve bir distutils.core.setup
ayrıştırma için yedek setup.py
dosyaları.
Bir alıntı @onnovalkering alternatif çözüm :
PyPi, paket meta verileri içeren bir JSON uç noktası sağlar:
>>> 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.*'
Belirli bir paket sürümü için, URL'ye ek bir sürüm segmenti ekleyin:
https://pypi.org/pypi/pandas/0.22.0/json
Ayrıca conda kullanıyorsanız ( @ShpielMeister tarafından önerildiği gibi ) şunları kullanabilirsiniz:
conda info package==X.X.X
belirli bir sürüm için bağımlılıklar dahil olmak üzere bilgileri görüntülemek için veya:
conda info package
bu paketin desteklenen tüm sürümleri hakkındaki bağımlılıklar dahil olmak üzere bilgileri görüntülemek için.
boto3
için, require_dist boştur, ancak bu, meta verilerde kesinlikle bağımlılıkları olan bir projedir .