Pip: ImportError: 'sysconfig' 이름을 κ°€μ Έμ˜¬ 수 μ—†μŠ΅λ‹ˆλ‹€(Ubuntu 16.04)

에 λ§Œλ“  2018λ…„ 05μ›” 03일  Β·  16μ½”λ©˜νŠΈ  Β·  좜처: pypa/pip

  • 핍 버전:
  • 파이썬 버전: 3.6.5
  • 운영 체제: μš°λΆ„νˆ¬ 16.04.4 LTS

μ„€λͺ…:

#5356κ³Ό μœ μ‚¬ν•œ λ¬Έμ œμ΄μ§€λ§Œ Ubuntu의 λ‹€λ₯Έ λ²„μ „μž…λ‹ˆλ‹€. #5356μ—μ„œ μ œμ•ˆλœ μ†”λ£¨μ…˜μ€ 이 Ubuntu λ²„μ „μ˜ 문제λ₯Ό ν•΄κ²°ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€.

클린 버전 Ubuntu의 jonathonf μ €μž₯μ†Œμ—μ„œ Python 3.6을 μ„€μΉ˜ν•œ ν›„ Pip 을 μ„€μΉ˜ν•˜λŠ” λ™μ•ˆ λ‹€μŒ 였λ₯˜λ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€.

기본적으둜 μ œκ³΅λ˜λŠ” Python 버전(3.5.2)으둜 Pipλ₯Ό μ„€μΉ˜ν•˜λ €κ³  해도 λ¬Έμ œκ°€ λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ‚΄κ°€ μ‹€ν–‰ν•œ 것:

python3.6 get-pip.py

였λ₯˜ λ©”μ‹œμ§€:

Traceback (most recent call last):
  File "get-pip.py", line 20649, in <module>
    main()
  File "get-pip.py", line 197, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip._internal
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/__init__.py", line 42, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/index.py", line 25, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/download.py", line 35, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/locations.py", line 10, in <module>
ImportError: cannot import name 'sysconfig'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "get-pip.py", line 20649, in <module>
    main()
  File "get-pip.py", line 197, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip._internal
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/__init__.py", line 42, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/index.py", line 25, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/download.py", line 35, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/locations.py", line 10, in <module>
ImportError: cannot import name 'sysconfig'

λ‚΄κ°€ 찾은 ν•΄κ²° 방법

  • https://www.python.org/ μ—μ„œ Python μ†ŒμŠ€ λ‹€μš΄λ‘œλ“œ
  • μ†ŒμŠ€ μ½”λ“œ μ••μΆ• ν’€κΈ°
  • λ‹€μŒ 쒅속성을 μ„€μΉ˜ν•©λ‹ˆλ‹€.
    sudo apt-get install zlib1g-dev (파이썬 μ»΄νŒŒμΌμ— ν•„μš”)
    sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev (Pip이 SSL μš”μ²­μ„ ν•˜λŠ” 데 ν•„μš”)
  • Python 컴파일 및 μ„€μΉ˜:
./configure
make
make install
  • Pipκ°€ ν¬ν•¨λœ Python 3.6이 μ„€μΉ˜λ˜μ–΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
downstream auto-locked support

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

λ‚˜λ„ λΉ„μŠ·ν•œ 였λ₯˜λ₯Ό λ³΄μ•˜λ‹€.

$ sudo python3.6 get-pip.py
Traceback (most recent call last):
  File "get-pip.py", line 20061, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/__init__.py", line 26, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/utils/__init__.py", line 23, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/locations.py", line 9, in <module>
ImportError: cannot import name 'sysconfig'

κ·ΈλŸ¬λ‚˜ python3-distutils λ₯Ό μ„€μΉ˜ν•˜λ©΄ 이 였λ₯˜λ₯Ό ν”Όν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
sudo apt-get install python3-distutils

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

λ‚΄ λ¬Έμ œμ— λŒ€ν•œ μ„€λͺ…을 읽어보면 λ‚΄κ°€ 이미 κ·Έ 문제λ₯Ό λ΄€λ‹€λŠ” 것을 μ•Œκ²Œ 될 κ²ƒμž…λ‹ˆλ‹€. μ œμ•ˆλœ μ†”λ£¨μ…˜μ€ 이 λ²„μ „μ˜ Ubuntu에 μ μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

무둀할 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‚˜μ—κ²Œ νŒŒμ΄μ¬μ„ μ»΄νŒŒμΌν•˜λŠ” 것은 해결책이 μ•„λ‹™λ‹ˆλ‹€.

ν•΄λ‹Ή κ°€μ Έμ˜€κΈ° 였λ₯˜κ°€ μ›μΈμž…λ‹ˆλ‹€. λ‚˜μ€‘μ— μž¬ν˜„ν•΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

@jonbesga ν•΄κ²° 방법에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. python 3.6 및 μš°λΆ„νˆ¬μ˜ λ˜‘κ°™μ€ λ²„μ „μ—μ„œλ„ 이 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€...

@Tarliton 그것이 해결책이 μ•„λ‹ˆλΌλŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€. ν•΄κ²° λ°©λ²•μœΌλ‘œ 이름을 λ°”κΎΈκ² μŠ΅λ‹ˆλ‹€.

λ¬΄λ‘€ν•œ 뢀뢄에 λŒ€ν•΄μ„œλŠ” μ£„μ†‘ν•˜μ§€λ§Œ 제 λ¬Έμ œμ—μ„œ 이미 μ–ΈκΈ‰ν•œ 문제λ₯Ό 보라고 ν•œ 것은 μ• μ΄ˆμ— 제 문제λ₯Ό 읽지 μ•Šκ³  λŒ“κΈ€μ„ κ²Œμ‹œν–ˆλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€.

@jonbesga λ‚΄ 잘λͺ»μ΄μ§€λ§Œ μ–ΈκΈ‰λœ λ‹€λ₯Έ λ¬Έμ œμ—μ„œ λͺ…령을 μ‹€ν–‰ν•˜λ €κ³  ν–ˆμ–΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.
처럼:

python -c "from distutils import sysconfig"

방금 Ubuntu 16.04.2κ°€ μžˆλŠ” VMμ—μ„œ κ·Έλ ‡κ²Œ ν–ˆκ³  아무 λ¬Έμ œκ°€ μ—†μ—ˆμŠ΅λ‹ˆλ‹€. 그리고 pipλ₯Ό μ„€μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€.
λ‚˜λŠ” 16.04.4둜 λ‚˜μ€‘μ— μ‹œλ„ν•  것이닀.

16.04.4μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

python3.6 -c "from distutils import sysconfig"

λ‹€μŒ 였λ₯˜λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: cannot import name 'sysconfig'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: cannot import name 'sysconfig'

$# ppa:jonathonf/python-3.6 ppa:deadsnakes/ppa μ—μ„œ Python 3.6을 μ„€μΉ˜ν•˜λ €κ³  μ‹œλ„ν–ˆμœΌλ©° Pipλ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ„€μΉ˜ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. jonathonf 버전이 μ–΄λ–€ μ‹μœΌλ‘œλ“  μ†μƒλœ 것 κ°™μŠ΅λ‹ˆλ‹€.

νŽΈμ§‘: μŠ€νƒ μ˜€λ²„ν”Œλ‘œ λ‹΅λ³€ 의 일뢀 주석이 jonathonf μ €μž₯μ†Œμ—μ„œ 이 문제λ₯Ό 해결함을 ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

ppa:jonathonf/python-3.6 λ₯Ό μ œκ±°ν•œ λ‹€μŒ ppa:deadsnakes/ppa python3.6 $#$λ₯Ό λ‹€μ‹œ μ„€μΉ˜ν•˜λ©΄ Linux Mint 18.3μ—μ„œ 이 λ¬Έμ œκ°€ 해결됨을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

ν˜„μž¬ PPA 제거 정보: https://askubuntu.com/a/173209/823909
μƒˆλ‘œμš΄ Python3.6 PPA μΆ”κ°€: https://askubuntu.com/questions/865554/how-do-i-install-python-3-6-using-apt-get

@tomrunia ν˜„μž¬ 링크가 μ΅œμƒμ˜ 닡변을 가리킀고 μžˆμ§€ μ•ŠμœΌλ―€λ‘œ 링크λ₯Ό https://askubuntu.com/a/310 으둜 λ³€κ²½ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

λ‚˜λ„ λΉ„μŠ·ν•œ 였λ₯˜λ₯Ό λ³΄μ•˜λ‹€.

$ sudo python3.6 get-pip.py
Traceback (most recent call last):
  File "get-pip.py", line 20061, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/__init__.py", line 26, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/utils/__init__.py", line 23, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/locations.py", line 9, in <module>
ImportError: cannot import name 'sysconfig'

κ·ΈλŸ¬λ‚˜ python3-distutils λ₯Ό μ„€μΉ˜ν•˜λ©΄ 이 였λ₯˜λ₯Ό ν”Όν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
sudo apt-get install python3-distutils

@wakiymap Ubuntu 18.04 LTS와 ν•¨κ»˜ #5356μ—μ„œ μž‘λ™ν•˜λŠ” μ†”λ£¨μ…˜μΈ 것 κ°™μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ Ubuntu 16.04.4 LTSμ—μ„œ ν•΄λ‹Ή νŒ¨ν‚€μ§€μ˜ 이름이 λ°”λ€Œμ—ˆκ³  λ¬Έμ œκ°€ ν•΄κ²°λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@jonbesga 이 버전을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.
Ubuntu Xenial(16.04 LTS)(GNU/Linux 4.4.94-mainline-rev1 aarch64)
ppa:jonathonf/python-3.6

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"

CPUκ°€ λ‹€λ₯΄λ―€λ‘œ 이 κ²½μš°μ™€ 관련이 없을 수 μžˆμŠ΅λ‹ˆλ‹€.
μ£„μ†‘ν•©λ‹ˆλ‹€.

Ubuntu 16.04μ—μ„œ λΉ„μŠ·ν•œ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€(특히 "from distutils import dist, sysconfig
ImportError: 'dist' 이름을 κ°€μ Έμ˜¬ 수 μ—†μŠ΅λ‹ˆλ‹€") 및 "sudo apt-get install python3-distutils"둜 ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€!

@RandyRomero @wakiyap κ°μ‚¬ν•©λ‹ˆλ‹€, apt install python3-distutils μ €μ—κ²Œλ„ νš¨κ³Όκ°€ μžˆμŠ΅λ‹ˆλ‹€.

@jonbesga μ €λŠ” 16.04.4 LTSλ₯Ό μ‚¬μš© 쀑이며 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€. νŽΈμ§‘ - λ‚˜λŠ” vagrantλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 쑰금 전에 "vagrant box update"λ₯Ό ν–ˆκ³ , μ €λŠ” 20180504에 μžˆμŠ΅λ‹ˆλ‹€)

일반적으둜 λ‚˜μ—κ²Œ λ¬»λŠ”λ‹€λ©΄ pip κ΄€λ ¨ λ¬Έμ œκ°€ μ•„λ‹ˆλΌ Ubuntu νŒ¨ν‚€μ§•κ³Ό 더 관련이 μžˆμŠ΅λ‹ˆλ‹€.

@wakiyap κ°μ‚¬ν•©λ‹ˆλ‹€, κ·€ν•˜μ˜ μ†”λ£¨μ…˜ apt install python3-distutils 도 μ €μ—κ²Œ νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€.
방금 Ubuntu 16.04.4μ—μ„œ Python 3.6.5둜 μ—…κ·Έλ ˆμ΄λ“œν–ˆμœΌλ©° matplotlib에 λŒ€ν•œ κ°€μ Έμ˜€κΈ° 및 pip 호좜이 λͺ¨λ‘ λ™μΌν•œ 였λ₯˜λ‘œ μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.

이 μˆ˜μ • 사항은 널리 λ°°ν¬λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

이 μŠ€λ ˆλ“œλŠ” λ‹«νžŒ ν›„ 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ μž κ²ΌμŠ΅λ‹ˆλ‹€. κ΄€λ ¨ 버그에 λŒ€ν•œ μƒˆ 문제λ₯Ό μ—¬μ‹­μ‹œμ˜€.

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