Pip: `setup.py`의 'install_requires'에 μžˆλŠ” VCS 링크가 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2020λ…„ 04μ›” 21일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: pypa/pip

ν™˜κ²½

  • 핍 버전: 20.0.2
  • 파이썬 버전: 3.8
  • OS: λ°λΉ„μ•ˆ GNU/λ¦¬λˆ…μŠ€ 10(λ²„μŠ€ν„°)

μ„€λͺ…

setup.py 파일의 'install_requires' μ„Ήμ…˜μ—μ„œ VCS μš”κ΅¬ 사항 μ§€μ •μžλ₯Ό μ‚¬μš©ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€(예: git+git://github.com/... ).

python setup.py install --user λŠ” λ‹€μŒ 였λ₯˜ λ©”μ‹œμ§€μ™€ ν•¨κ»˜ μ‹€νŒ¨ν•©λ‹ˆλ‹€.

κ³ λΈ”λ¦° μ„€μ • λͺ…λ Ή 였λ₯˜: 'install_requires'λŠ” μœ νš¨ν•œ ν”„λ‘œμ νŠΈ/버전 μš”κ΅¬ 사항 μ§€μ •μžλ₯Ό ν¬ν•¨ν•˜λŠ” λ¬Έμžμ—΄ λ˜λŠ” λ¬Έμžμ—΄ λͺ©λ‘μ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€. 잘λͺ»λœ μš”κ΅¬ 사항, "'+ git://g '"μ—μ„œ ꡬ문 뢄석 였λ₯˜

μ˜ˆμƒλ˜λŠ” 행동

setup.py 에 μ§€μ •λœ λŒ€λ‘œ μ„€μΉ˜κ°€ μ„±κ³΅ν•˜κ³  쒅속성을 μ„€μΉ˜ν•˜κΈ°λ₯Ό κΈ°λŒ€ν•©λ‹ˆλ‹€.

λ²ˆμ‹ 방법

https://github.com/kkom/goblin/blob/4d112b95dfd2374363b4617b08d3f0689957ea73/setup.py μ—μ„œ 이 setup.py νŒŒμΌμ„ μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

"""Python toolkit for Tinker Pop 3 Gremlin Server."""

import os
from setuptools import find_packages, setup


__author__ = 'Jeffrey Phillips Freeman'
__email__ = '[email protected]'
__license__ = 'Apache License, Version 2.0'
__copyright__ = 'Copyright 2017, CleverThis, Inc. and contributors'
__credits__ = ['David M. Brown - Project founder']

with open("README.md", "r") as fh:
    long_description = fh.read()

setup(
    name='goblin',
    version='2.2.4',
    license=__license__,
    author=__author__,
    author_email=__email__,
    description='Goblin OGM for the Tinkerpop 3 Stack,',
    long_description_content_type="text/markdown",
    long_description=long_description,
    url='http://goblin-ogm.com',
    download_url='https://github.com/goblin-ogm/goblin/archive/v2.2.4.tar.gz',
    include_package_data=True,
    keywords=['Tinkerpop', 'Tinkerpop3', 'gremlin', 'gremlin-python', 'asyncio', 'graphdb', 'ogm', 'orm'],
    packages=find_packages(),
    python_requires='>=3.5',
    install_requires=[
        'git+git://github.com/kkom/aiogremlin.git<strong i="31">@301c9d1dd0cf07b50934c8df2b51084acea86cd7</strong>',
    ],
    test_suite='tests',
    setup_requires=[
        'pytest-runner>=2.6.2',
    ],
    tests_require=['check-manifest>=0.25',
                   'isort>=4.2.2',
                   'pydocstyle>=1.0.0',
                   'pytest-asyncio>=0.8.0',
                   'pytest-cache>=1.0',
                   'pytest-cov>=2.5.1',
                   'pytest-pep8>=1.0.6',
                   'pytest-timeout>=1.3.4',
                   'pytest>=3.2.1',
                   'uvloop>=0.8.1',
                   'mock'],
    classifiers=[
        'Development Status :: 5 - Production/Stable',
        'Intended Audience :: Developers',
        'License :: OSI Approved :: Apache Software License',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
        # uncomment if you test on these interpreters:
        # 'Programming Language :: Python :: Implementation :: IronPython',
        # 'Programming Language :: Python :: Implementation :: Jython',
        # 'Programming Language :: Python :: Implementation :: Stackless',
        'Programming Language :: Python :: Implementation :: PyPy'
    ]
)

μ‚°μΆœ

root<strong i="36">@d6698cc1fa7a</strong>:/workspaces/goblin# python setup.py install --user
error in goblin setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid requirement, parse error at "'+git://g'"

μΆ”κ°€ λ©”λͺ¨

'install_requires' 에 쒅속성을 맀우 μ •ν™•ν•˜κ²Œ κ³ μ •ν•˜λŠ” 것이 μ™„μ „ν•œ λ°˜νŒ¨ν„΄μ΄λΌλŠ” 것을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.

aiogremlin 의 차단 버그λ₯Ό μˆ˜μ •ν•˜κ³  있기 λ•Œλ¬Έμ— 이 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μ΄λŠ” goblin - λ‚΄ ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš© 쀑인 νŒ¨ν‚€μ§€μ˜ μ’…μ†μ„±μž…λ‹ˆλ‹€.

λ˜ν•œ 관심이 μžˆλŠ” 경우 이 문제λ₯Ό λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ ν•΄κ²°ν•˜λ €κ³  ν•©λ‹ˆλ‹€. https://github.com/jazzband/pip-tools/issues/1111

triage

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš”, VCS 쒅속성에 λŒ€ν•œ μ˜¬λ°”λ₯Έ ν˜•μ‹μ€ install_requires=['aiogremlin @ git+... μž…λ‹ˆλ‹€. λ˜ν•œ λ³΄μ•ˆμƒμ˜ 이유둜 git+git 의 μ‚¬μš©μ€ ꢌμž₯λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(8f0dbec5734c5197c3b7070987814b584e3f31a6). GitHub의 경우 λŒ€μ‹  git+https λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 이 λ¬Έμ œκ°€ ν•΄κ²°λ˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.

λͺ¨λ“  3 λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš”, VCS 쒅속성에 λŒ€ν•œ μ˜¬λ°”λ₯Έ ν˜•μ‹μ€ install_requires=['aiogremlin @ git+... μž…λ‹ˆλ‹€. λ˜ν•œ λ³΄μ•ˆμƒμ˜ 이유둜 git+git 의 μ‚¬μš©μ€ ꢌμž₯λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(8f0dbec5734c5197c3b7070987814b584e3f31a6). GitHub의 경우 λŒ€μ‹  git+https λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 이 λ¬Έμ œκ°€ ν•΄κ²°λ˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.

@McSinyx κ°μ‚¬ν•©λ‹ˆλ‹€. ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€!

그리고 예 - https μ‚¬μš©μœΌλ‘œ μΈν•œ λ³΄μ•ˆμƒμ˜ 이점에 λŒ€ν•œ 쒋은 μ μž…λ‹ˆλ‹€!

μ‹€μ œλ‘œ κ·€ν•˜μ˜ μ†”λ£¨μ…˜μ€ λ‹€λ₯Έ λ¬Έμ œμ— λŒ€ν•œ λ‚΄ λ¬Έμ œλ„ ν•΄κ²°ν•©λ‹ˆλ‹€. https://github.com/jazzband/pip-tools/issues/1111

νŠΈλ¦¬ν”Œ 승리! @McSinyx κ°μ‚¬ν•©λ‹ˆλ‹€!

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰