2014-06-15 5 views
4

PyPI 패키지의 종속성 (예 : install_requires 메타 데이터)에 액세스하려고합니다. 이 정보는 JSON 또는 XMLRPC API에서 사용할 수있는 것 같지 않습니다. XMLRPC API의 documentationrelease_data 메서드가 requires 키를 사용하여 dict을 반환해야한다고 말합니다. 그러나 API를 사용할 때이를 보지 못합니다.프로그래밍 방식으로 Python 패키지의 종속성에 액세스하는 방법은 무엇입니까?

>>> import xmlrpclib 
>>> client = xmlrpclib.ServerProxy('http://pypi.python.org/pypi') 
>>> info = client.release_data('Flask', '0.10.1') 
>>> 'requires' in info 
False 
>>> info 
{'_pypi_hidden': False, 
'_pypi_ordering': 17, 
'author': 'Armin Ronacher', 
'author_email': '[email protected]', 
'bugtrack_url': None, 
'cheesecake_code_kwalitee_id': None, 
'cheesecake_documentation_id': None, 
'cheesecake_installability_id': None, 
'classifiers': ['Development Status :: 4 - Beta', 
    'Environment :: Web Environment', 
    'Intended Audience :: Developers', 
    'License :: OSI Approved :: BSD License', 
    'Operating System :: OS Independent', 
    'Programming Language :: Python', 
    'Programming Language :: Python :: 3', 
    'Topic :: Internet :: WWW/HTTP :: Dynamic Content', 
    'Topic :: Software Development :: Libraries :: Python Modules'], 
'description': 'Flask\n-----\n\nFlask is a microframework for Python based on Werkzeug, Jinja 2 and good\nintentions. And before you ask: It\'s BSD licensed!\n\nFlask is Fun\n````````````\n\n.. code:: python\n\n from flask import Flask\n app = Flask(__name__)\n\n @app.route("/")\n def hello():\n  return "Hello World!"\n\n if __name__ == "__main__":\n  app.run()\n\nAnd Easy to Setup\n`````````````````\n\n.. code:: bash\n\n $ pip install Flask\n $ python hello.py\n  * Running on http://localhost:5000/\n\nLinks\n`````\n\n* `website <http://flask.pocoo.org/>`_\n* `documentation <http://flask.pocoo.org/docs/>`_\n* `development version\n <http://github.com/mitsuhiko/flask/zipball/master#egg=Flask-dev>`_', 
'docs_url': '', 
'download_url': 'UNKNOWN', 
'downloads': {'last_day': 4723, 'last_month': 267891, 'last_week': 64752}, 
'home_page': 'http://github.com/mitsuhiko/flask/', 
'keywords': None, 
'license': 'BSD', 
'maintainer': None, 
'maintainer_email': None, 
'name': 'Flask', 
'package_url': 'http://pypi.python.org/pypi/Flask', 
'platform': 'any', 
'release_url': 'http://pypi.python.org/pypi/Flask/0.10.1', 
'requires_python': None, 
'stable_version': None, 
'summary': 'A microframework based on Werkzeug, Jinja2 and good intentions', 
'version': '0.10.1'} 

패키지를 설치하지 않고도 패키지의 종속성을 얻을 수있는 다른 방법이 있습니까?

  1. 다운로드 패키지와
  2. 실행 setup.py egg_info
  3. 구문 분석 플라스크에 대한 requires.txt

를 생성하는 특정 디렉토리에 압축을 풉니 다 :

+0

'info'는 * anything *을 포함합니까? 문서에 "릴리스가 없으면 빈 사전이 반환됩니다."... – Bakuriu

+0

예. 나는 정보 dict를 포함하기 위하여 포스트를 새롭게했다 –

+0

포장에는 아무 필요 조건도다는 것을 일 수 있 었는가? – hellerve

답변

2

내가 pypi에서 종속성을 추출 알고있는 유일한 방법은에있다 0.10.1이 될 것입니다.

Werkzeug>=0.7 
Jinja2>=2.4 
itsdangerous>=0.21