Virtualenv: Setuptools v45.0.0은 Python 2μ—μ„œ virtualenvλ₯Ό μ€‘λ‹¨ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2020λ…„ 01μ›” 12일  Β·  18μ½”λ©˜νŠΈ  Β·  좜처: pypa/virtualenv

μ„œλ¬Έ : μ €λŠ” 2020λ…„ 1μ›” 1일 마감일 전체에 λŒ€ν•΄ 잘 μ•Œκ³  있으며 λͺ¨λ“  ν”„λ‘œμ νŠΈμ—μ„œ Python 2λ₯Ό μ‚­μ œν•˜λŠ” 과정에 μžˆμ§€λ§Œ setuptoolsμ—μ„œ μ΄λŸ¬ν•œ 놀라움은 상관없이 μƒλ‹Ήνžˆ λΆˆνŽΈν•©λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜μ§€ μ•ŠκΈ°λ‘œ μ„ νƒν–ˆλ‹€λ©΄ μ €λŠ” 아무도 νŒλ‹¨ν•˜μ§€ μ•Šκ² μ§€λ§Œ Python 2κ°€ 더 이상 μ‚¬μš©λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” κ°•μ˜λŠ” ν•˜μ§€ λ§ˆμ„Έμš” :-)


Python 2의 λͺ¨λ“  μžλ™ν™”λœ 가상 ν™˜κ²½ 생성 μŠ€ν¬λ¦½νŠΈκ°€ 였늘 μ€‘λ‹¨λ˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒμ€ μ˜ˆμž…λ‹ˆλ‹€.

$ py -2.7-32 -m virtualenv foo
…
UnsupportedPythonVersion: Package 'setuptools' requires a different Python: 2.7.8 not in '>=3.5'
…
OSError: Command …\Scripts\python.exe - setuptools pip wheel failed with error code 1

이것은 μ–΄μ œ setuptools v45.0.0 릴리슀둜 인해 λ°œμƒν•œ 것 κ°™μŠ΅λ‹ˆλ‹€.

v45.0.0: 2020λ…„ 1μ›” 11일

1458: Python 2에 λŒ€ν•œ 지원 쀑단. 이제 Setuptoolsμ—λŠ” Python 3.5 이상이 ν•„μš”ν•©λ‹ˆλ‹€. pip >=9λ₯Ό μ‚¬μš©ν•˜μ—¬ setuptoolsλ₯Ό μ„€μΉ˜ν•˜κ±°λ‚˜ Setuptools <45에 κ³ μ •ν•˜μ—¬ 2.7 지원을 μœ μ§€ν•©λ‹ˆλ‹€.
1959: Python 4 μˆ˜μ •: μ•ˆμ „ν•˜μ§€ μ•Šμ€ six.PY3을 six.PY2둜 ꡐ체

https://setuptools.readthedocs.io/en/latest/history.html#v45 -0-0

기본적으둜 virtualenv λŠ” μ΅œμ‹  setuptoolsλ₯Ό μ„€μΉ˜ν•˜λ €κ³  μ‹œλ„ν•˜κ³  μ΄λŸ¬ν•œ 버전이 Python 2λ₯Ό μ§€μ›ν•˜μ§€ μ•Šλ”λΌλ„ pip install setuptools λŠ” setuptools>=45.0.0 μ„ νƒν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

ν•΄κ²° λ°©λ²•μœΌλ‘œ 이제 λ‹€μŒ λͺ…령을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

$ py -2.7-32 -m virtualenv --no-setuptools foo
$ foo\Scripts\python -m pip install "setuptools<45"

μ €λŠ” Python νŒ¨ν‚€μ§•μ—μ„œ 내보내기가 μ•„λ‹ˆμ§€λ§Œ setuptools>=45 κ°€ 배포 λ©”νƒ€λ°μ΄ν„°μ—μ„œ Python 2λ₯Ό μ§€μ›ν•˜μ§€ μ•Šκ³  pip install setuptools κ°€ μžλ™μœΌλ‘œ 이λ₯Ό κ°μ§€ν•˜κ³  ν”Όν•  것이라고 μ„ μ–Έν•  κ²ƒμœΌλ‘œ μ˜ˆμƒν•˜μ§€λ§Œ 이것은 그렇지 μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€.

이 방법을 μ‚¬μš©ν•  μˆ˜μ—†λŠ” 경우, μ•„λ§ˆ 버전 virtualenv 파이썬 2λŠ” ν”Όν•΄μ•Όν•œλ‹€ setuptools>=45 ?

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

λ‹€μŒμ€μ΄ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 λ„μ›€μ΄λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

pip install --upgrade 'setuptools<45.0.0'

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

λ‚˜λŠ” 이것이 μ€‘μš”ν•œ λ¬Έμ œμž„μ„ ν™•μΈν•©λ‹ˆλ‹€. OpenStackμ—μ„œ λŒ€λΆ€λΆ„μ˜ κ²Œμ΄νŠΈλŠ” 이둜 인해 atmμ—μ„œ κΉ¨μ§‘λ‹ˆλ‹€. μ°Έμ‘°: http://lists.openstack.org/pipermail/openstack-discuss/2020-January/011956.html

보고해 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. /me 30λΆ„ λŠ¦μ—ˆμŠ΅λ‹ˆλ‹€. virtualenvκ°€ pip의 μ΅œμ‹  리쑸버λ₯Ό μ‚¬μš©ν•  것이라고 μƒκ°ν–ˆμ§€λ§Œ κ²‰λ³΄κΈ°μ—λŠ” 그렇지 μ•ŠμŠ΅λ‹ˆλ‹€.

λ‹€λ₯Έ λ‹€μš΄μŠ€νŠΈλ¦Ό https://github.com/pypa/setuptools/issues/1963에 λŒ€ν•œ setuptoolsμ—μ„œ 이미 좔적됨

setuptools 45+κ°€ μ„ νƒλ˜λŠ” μ΄μœ κ°€ ν™•μ‹€ν•˜μ§€ μ•Šμ€ 경우 virtualenvs λΆ€νŠΈμŠ€νŠΈλž©μ€ setuptools에 λŒ€ν•΄ 44λ₯Ό μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€. πŸ€”

λ‹€μŒμ€ μ—­μΆ”μ μž…λ‹ˆλ‹€. http://paste.openstack.org/show/788301/

legacy_resolveλŠ” μƒˆ κ·œμΉ™μ„ νκΈ°ν•˜λŠ” κ²ƒμ²˜λŸΌ λ“€λ¦½λ‹ˆλ‹€.

μ•„λ‹ˆ, 탐색할 잘λͺ»λœ 방법, μ›μ‹œ pipλŠ” py 버전 μ œμ•½ 쑰건도 λ¬΄μ‹œν•©λ‹ˆλ‹€(μž‘λ™ν•˜λŠ” κ²ƒμœΌλ‘œ κ΄‘κ³ λ˜κ³  μžˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³ ): http://paste.openstack.org/show/788302/

내일 μ‚΄νŽ΄λ³΄κ³  μˆ˜μ • 사항을 λ°œν‘œν•˜κ² μŠ΅λ‹ˆλ‹€. λˆ„κ΅¬λ“ μ§€ κ·Έ 전에 홍보λ₯Ό ν•  μ‹œκ°„μ΄ μžˆλ‹€λ©΄ 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

@yoctozepto λŠ” λ‹Ήμ‹ μ˜ μ‹€νŒ¨λ₯Ό λ³΅μ œν•  수 μ—†λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 삼쀑 상세 정보가 ν¬ν•¨λœ 전체 생성 둜그λ₯Ό μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

@gaborbernat pypa/pip#7586κ³Ό λ™μΌν•œ 문제 라면 @yoctozepto κ°€ μ‚¬μš© 쀑인 PyPA 미러 쀑 ν•˜λ‚˜μ˜ 버그일 수 μžˆμŠ΅λ‹ˆλ‹€.

λΆ„λͺ…νžˆ κ·Έλ“€ 쀑 ν•˜λ‚˜λŠ” python_requires 정보λ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ „νŒŒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

κ·Έλ ‡λ‹€λ©΄ 이것은 ν•΄λ‹Ή 미러의 λ²„κ·Έμž…λ‹ˆλ‹€. πŸ€·β€β™‚

λ‹€μŒμ€μ΄ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 λ„μ›€μ΄λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

pip install --upgrade 'setuptools<45.0.0'

λ‚˜λŠ” μ—¬μ „νžˆ python 2.7을 μ‚¬μš©ν•˜λŠ” ν”„λ‘œμ νŠΈλ‘œ μž‘μ—…ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€ :(, 그리고 λ™μΌν•œ λ¬Έμ œκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
κ·ΈλŸ¬λ‚˜ μœ„μ˜ λͺ…λ Ή(ikrambabai)을 μ‚¬μš©ν•˜λ©΄ λ‹€μ‹œ μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€!! :NS
감사 ν•΄μš”!

κ·ΈλŸ¬λ‚˜ 이것은 virtualenv κ°€ setuptools-45.0.0 λ‹€μš΄λ‘œλ“œν•˜κ³  μ—…κ·Έλ ˆμ΄λ“œκ°€ μ—†μœΌλ©΄( pip install --upgrade 'setuptools<45.0.0' λ₯Ό μ‚¬μš©ν•˜μ—¬ pipλ₯Ό 톡해 λ‹€μš΄κ·Έλ ˆμ΄λ“œ) μ‹€μ œλ‘œ μ œκ±°ν•˜λ―€λ‘œ python 2.7용 μƒˆ 가상 ν™˜κ²½μ„ λ§Œλ“€ λ•Œ μ—¬μ „νžˆ μ€‘μš”ν•©λ‹ˆλ‹€. . μœ μΌν•œ 해결책은 μˆ˜λ™μœΌλ‘œ νœ μ„ λ‹€μš΄λ‘œλ“œν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ 이것은 virtualenv κ°€ setuptools-45.0.0 λ‹€μš΄λ‘œλ“œν•˜κ³  μ—…κ·Έλ ˆμ΄λ“œκ°€ μ—†μœΌλ©΄( pip install --upgrade 'setuptools<45.0.0' λ₯Ό μ‚¬μš©ν•˜μ—¬ pipλ₯Ό 톡해 λ‹€μš΄κ·Έλ ˆμ΄λ“œ) μ‹€μ œλ‘œ μ œκ±°ν•˜λ―€λ‘œ python 2.7용 μƒˆ 가상 ν™˜κ²½μ„ λ§Œλ“€ λ•Œ μ—¬μ „νžˆ μ€‘μš”ν•©λ‹ˆλ‹€. . μœ μΌν•œ 해결책은 μˆ˜λ™μœΌλ‘œ νœ μ„ λ‹€μš΄λ‘œλ“œν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

이것은 python-requires...λ₯Ό μ „νŒŒν•˜μ§€ μ•ŠλŠ” 인덱슀 μ„œλ²„ 뒀에 μžˆλŠ” κ²½μš°μ—λ§Œ λ°œμƒν•˜λ―€λ‘œ 인덱슀 μ„œλ²„λ₯Ό μˆ˜μ •ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

@gaborbernat λ‚΄κ°€ μ•Œκ³ μžˆλŠ”

virtualenvλ₯Ό 생성할 λ•Œ νŒ¨ν‚€μ§€λ₯Ό λ‹€μš΄λ‘œλ“œν•  λ•Œ pythonhosted.orgκ°€ μ‚¬μš©λ˜λŠ” 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

Installing setuptools, pkg_resources, pip, wheel...
  Running command /opt/llenv22/bin/python2.7 - setuptools pkg_resources pip wheel
  Collecting setuptools
    Using cached https://files.pythonhosted.org/packages/af/e7/02db816dc88c598281bacebbb7ccf2c9f1a6164942e88f1a0fded8643659/setuptools-45.0.0-py2.py3-none-any.whl
  Collecting pkg_resources
  Collecting pip
    Using cached https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl
  Collecting wheel
    Using cached https://files.pythonhosted.org/packages/00/83/b4a77d044e78ad1a45610eb88f745be2fd2c6d658f9798a15e384b7d57c9/wheel-0.33.6-py2.py3-none-any.whl

pip install setuptools -vvv 에 λŒ€ν•œ -v ν”Œλž˜κ·Έλ₯Ό μ „λ‹¬ν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ?

μž‘λ™ν•˜κ³  μ˜¬λ°”λ₯Έ 버전이 μ„€μΉ˜λ©λ‹ˆλ‹€.

Collecting setuptools
  Created temporary directory: /tmp/pip-unpack-zJMfUH
  Starting new HTTPS connection (1): files.pythonhosted.org:443
  https://files.pythonhosted.org:443 "GET /packages/f9/d3/955738b20d3832dfa3cd3d9b07e29a8162edb480bf988332f5e6e48ca444/setuptools-44.0.0-py2.py3-none-any.whl HTTP/1.1" 200 583230
  Downloading setuptools-44.0.0-py2.py3-none-any.whl (583 kB)
     |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 583 kB 3.3 MB/s
  Added setuptools from https://files.pythonhosted.org/packages/f9/d3/955738b20d3832dfa3cd3d9b07e29a8162edb480bf988332f5e6e48ca444/setuptools-44.0.0-py2.py3-none-any.whl#sha256=180081a244d0888b0065e18206950d603f6550721bd6f8c0a10221ed467dd78e to build tracker '/tmp/pip-req-tracker-OTDORt'
  Removed setuptools from https://files.pythonhosted.org/packages/f9/d3/955738b20d3832dfa3cd3d9b07e29a8162edb480bf988332f5e6e48ca444/setuptools-44.0.0-py2.py3-none-any.whl#sha256=180081a244d0888b0065e18206950d603f6550721bd6f8c0a10221ed467dd78e from build tracker '/tmp/pip-req-tracker-OTDORt'
Installing collected packages: setuptools
  Created temporary directory: /tmp/pip-unpacked-wheel-vDEYe

λ¬Έμ œλŠ” 가상 ν™˜κ²½μ„ 생성할 λ•Œλ§Œ λ°œμƒν•©λ‹ˆλ‹€.

@ostefano 저도 λ§ˆμ°¬κ°€μ§€μ˜€μŠ΅λ‹ˆλ‹€. setuptools λͺ…μ‹œμ μœΌλ‘œ μ„€μΉ˜ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

$ py -2.7-32 -m virtualenv --no-setuptools foo
$ foo\Scripts\python -m pip install "setuptools<45"

μš°λ¦¬λŠ” 같은 λ¬Έμ œμ— μ§λ©΄ν–ˆμŠ΅λ‹ˆλ‹€: https://github.com/mozilla-services/syncserver/issues/239
λ¨Όμ € Requires-Python ν”Œλž˜κ·Έλ₯Ό μ‘΄μ€‘ν•˜μ§€ μ•ŠλŠ” pythonhosted.org라고 μƒκ°ν–ˆμ§€λ§Œ λ™μΌν•œ 미러λ₯Ό μ‚¬μš©ν•˜λ©΄ Python 2.7.13의 Debian Stretchμ—μ„œ μž‘λ™ν•˜λŠ” 반면 Python 2.7.12의 Ubuntu Xenialμ—μ„œλŠ” μ‹€νŒ¨ν•©λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ κ½€ κΉ¨λ—ν•œ μ‹œμŠ€ν…œ μ„€μ •, Docker ν™˜κ²½μ—μ„œλ„ ν…ŒμŠ€νŠΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€. Ubuntu Bionic 및 Python 2.7.17μ—μ„œ 이미 λ™μΌν•œ λ¬Έμ œκ°€ λ³΄κ³ λ˜μ—ˆμœΌλ―€λ‘œ Python 버전이 원인일 수 μ—†μŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ λ‚˜λŠ” 버그가 어디에/μ–΄λŠ μˆ˜μ€€μ—μ„œ κ²€μƒ‰λ˜μ–΄μ•Ό ν•˜λŠ”μ§€ μ˜μ•„ν•΄ν•©λ‹ˆλ‹€. Python, virtualenv, pip, pythonhosted.org λ˜λŠ” 쀑간에 λ­”κ°€κ°€ μžˆμŠ΅λ‹ˆκΉŒ?
ν•΄κ²° 방법은 λͺ…ν™•ν•˜μ§€λ§Œ μ²˜μŒλΆ€ν„° setuptools 45κ°€ 당겨진 이유λ₯Ό μ‘°μ‚¬ν•˜κ³  μˆ˜μ •ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

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