Virtualenv: python3.6으둜 virtualenv 생성 쀑 였λ₯˜ λ°œμƒ

에 λ§Œλ“  2017λ…„ 06μ›” 22일  Β·  24μ½”λ©˜νŠΈ  Β·  좜처: pypa/virtualenv

였늘 일찍 λ°λΉ„μ•ˆ 머신에 python3.6을 μ„€μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€. Python3.6은 λ²„μŠ€ν„° λ°°ν¬νŒμ—μ„œ μ‚¬μš©ν•  수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. python3.6으둜 virtualenvλ₯Ό λ§Œλ“€λ €κ³  ν•  λ•Œ.

python3.6 -m venv venv

λ‹€μŒ 였λ₯˜λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

surepip을 μ‚¬μš©ν•  수 μ—†κΈ° λ•Œλ¬Έμ— 가상 ν™˜κ²½μ΄ μ„±κ³΅μ μœΌλ‘œ μƒμ„±λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. Debian/Ubuntu μ‹œμŠ€ν…œμ—μ„œλŠ” λ‹€μŒ λͺ…령을 μ‚¬μš©ν•˜μ—¬ python3-venv νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

apt-get μ„€μΉ˜ python3-venv

ν•΄λ‹Ή λͺ…λ Ήκ³Ό ν•¨κ»˜ sudoλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. python3-venvλ₯Ό μ„€μΉ˜ν•œ ν›„
νŒ¨ν‚€μ§€, 가상 ν™˜κ²½μ„ λ‹€μ‹œ λ§Œλ“­λ‹ˆλ‹€.

μ‹€νŒ¨ν•œ λͺ…λ Ή: ['/home/float/test/t/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

python3-venv (3.5.3-1) μ„€μΉ˜λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 이 였λ₯˜κ°€ λ°œμƒν•˜λŠ” μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ? λ‚΄κ°€ λͺ…령을 μ‹€ν–‰ν•˜λ©΄

py3 -Im ensurepip --upgrade --default-pip

그것은 λ§ν•œλ‹€

/usr/bin/python3.6: No module named ensurepip

κΈ°λ³Έ python3 버전(3.5.3)을 μ‚¬μš©ν•˜μ—¬ virtualenvsλ₯Ό λ§Œλ“œλŠ” 데 λ¬Έμ œκ°€ μ—†μŠ΅λ‹ˆλ‹€.

λ˜ν•œ λ‹€μŒκ³Ό 같이 virtualenvλ₯Ό λ§Œλ“€ 수 μžˆμŒμ„ μ•Œμ•˜μŠ΅λ‹ˆλ‹€.

virtualenv -p python3.6 venv

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

원본 ν¬μŠ€ν„°μ˜ λ¬Έμ œλŠ” 'python3.6-venv' νŒ¨ν‚€μ§€κ°€ μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ°œμƒν•©λ‹ˆλ‹€. 이 νŒ¨ν‚€μ§€λŠ” λ²„μŠ€ν„° Debian에 μ•‘μ„ΈμŠ€ν•  수 μ—†λŠ” 경우 Dockerλ₯Ό μ‚¬μš©ν•˜μ—¬ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

$ docker run --rm -it debian:buster /bin/bash
$ apt update
...
$ apt install python3.5 python3.6 python3.5-venv
...
$ python3.6 -m venv venv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/venv/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']
$ rm -rf venv
$ apt install python3.6-venv
...
$ python3.6 -m venv venv
... success

'python3.6-venv'λ₯Ό μ„€μΉ˜ν•˜λ©΄ μž‘λ™ν•©λ‹ˆλ‹€.

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

μ•ˆλ…•,

virtualenv 및 python3 venv 자체 λͺ¨λ“ˆμ€ μ™„μ „νžˆ λ‹€λ₯Έ 2개의 ν”„λ‘œμ νŠΈ/μ‚¬λ¬Όμž…λ‹ˆλ‹€.

venvλŠ” virtualenv와 λ™μΌν•˜μ§€λ§Œ python3 μžμ²΄μ— 직접 ν†΅ν•©λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
virtualenvλŠ” 기본적으둜 역사적인 ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€(일반적으둜 venvκ°€ μžˆλŠ” λ™μ•ˆ python3κ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ μ•ˆ λ©λ‹ˆλ‹€).

κ·€ν•˜μ˜ μž…λ ₯에 λ”°λ₯΄λ©΄ python3-venvκ°€ κ·€ν•˜μ˜ 츑에 μž¬μ„€μΉ˜( sudo apt-get reinstall python-venv λ˜λŠ” 이와 μœ μ‚¬ν•œ 것)κ°€ 될 수 μžˆλ‹€κ³  λ§ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ‚΄κ°€ 틀릴 수 μžˆμŠ΅λ‹ˆλ‹€. μ–΄μ¨Œλ“  이것은 λͺ¨λ“  λ°λΉ„μ•ˆκ³Ό κ΄€λ ¨λœ κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€. λ‚˜λŠ” κ½€ ν™•μ‹ ν•©λ‹ˆλ‹€.

문제λ₯Ό 닫아도 λ κΉŒμš”? (μ €λŠ” μ—¬κΈ° κ΄€λ¦¬μžκ°€ μ•„λ‹™λ‹ˆλ‹€)
λ¬Έμ•ˆ 인사.

μž¬μ„€μΉ˜κ°€ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. μ§€κΈˆ 이 문제λ₯Ό λ‹«κ² μŠ΅λ‹ˆλ‹€. μΆ”κ°€ 정보가 있으면 μ—…λ°μ΄νŠΈν•˜κ² μŠ΅λ‹ˆλ‹€.

@animeshb , 이후에 더 λ§Žμ€ 좜λ ₯이 μ—†μŠ΅λ‹ˆλ‹€.

Failing command: ['/home/float/test/t/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

?

float<strong i="5">@animesh</strong>:~/test$ python3.6 -m venv venv

κ·Έ 쀄 λ’€μ—λŠ” 아무것도 μ—†μŠ΅λ‹ˆλ‹€.

The virtual environment was not created successfully because ensurepip is not available. On Debian/Ubuntu systems, you need to install the python3-venv package using the following command.

apt-get install python3-venv

You may need to use sudo with that command. After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/float/test/t/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

venv/bin ν΄λ”μ—λŠ” activate λͺ…령이 μ—†μŠ΅λ‹ˆλ‹€.

float<strong i="13">@animesh</strong>:~/test$ ls venv/bin/
python  python3  python3.6

이 였λ₯˜μ™€ μΌμΉ˜ν•˜λŠ” λ§Žμ€ νŽ˜μ΄μ§€ 쀑 ν•˜λ‚˜λ‘œλ§Œ λ¦¬λ””λ ‰μ…˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€(debian/ubuntu μ‹œμŠ€ν…œμ—μ„œ μ•Œλ €μ§„ λ¬Έμ œμž„).

https://bugs.launchpad.net/ubuntu/+source/python3.4/+bug/1290847

sudo apt-get install python3-pip μ–΄λ–»μŠ΅λ‹ˆκΉŒ?

원본 ν¬μŠ€ν„°μ˜ λ¬Έμ œλŠ” 'python3.6-venv' νŒ¨ν‚€μ§€κ°€ μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ°œμƒν•©λ‹ˆλ‹€. 이 νŒ¨ν‚€μ§€λŠ” λ²„μŠ€ν„° Debian에 μ•‘μ„ΈμŠ€ν•  수 μ—†λŠ” 경우 Dockerλ₯Ό μ‚¬μš©ν•˜μ—¬ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

$ docker run --rm -it debian:buster /bin/bash
$ apt update
...
$ apt install python3.5 python3.6 python3.5-venv
...
$ python3.6 -m venv venv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/venv/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']
$ rm -rf venv
$ apt install python3.6-venv
...
$ python3.6 -m venv venv
... success

'python3.6-venv'λ₯Ό μ„€μΉ˜ν•˜λ©΄ μž‘λ™ν•©λ‹ˆλ‹€.

μ™€μš°, 버전별 -venv νŒ¨ν‚€μ§€κ°€ μžˆμ„ κ±°λΌκ³ λŠ” μ „ν˜€ μƒκ°ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. 이것을 μ„€μΉ˜ν•˜λ©΄ νŠΈλ¦­μ„ μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

@gst 및 @eukaryote 이 λ¬Έμ œμ— μ‹œκ°„μ„

@eukaryote 의 μ†”λ£¨μ…˜μ΄ μ €μ—κ²Œ

이 닡변은 OP와 λ™μΌν•œ 였λ₯˜ λ©”μ‹œμ§€λ₯Ό μƒμ„±ν•˜λŠ” λ‚΄ 문제λ₯Ό ν•΄κ²°ν•˜λ―€λ‘œ 잘λͺ» κ΅¬μ„±λœ λ‘œμΌ€μΌλ„ 이 문제λ₯Ό μœ λ°œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒμ„ μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

단 ν•˜λ‚˜μ˜ 데이터 ν¬μΈνŠΈμ΄μ§€λ§Œ μƒˆλ‘œμš΄ virtualbox μš°λΆ„νˆ¬ λ°”μ΄μ˜€λ‹‰μ„ μ‚¬μš©ν•˜λ©΄μ„œ apt install python3.6-venv μ—¬μ „νžˆ 깨진 python3.6 -m venv 을 λ‚¨κ²Όμ§€λ§Œ apt install python3-venv μ‹€ν–‰ν•˜λ©΄ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ €λŠ” λ°λΉ„μ•ˆ ν…ŒμŠ€νŠΈ/λ²„μŠ€ν„°λ₯Ό μ‚¬μš© 쀑이고 python3.6-venv 와 python3-venv κ°€ λ‘˜ λ‹€ μ„€μΉ˜λ˜μ–΄ μžˆμ§€λ§Œ λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

이에 λŒ€ν•œ λ°λΉ„μ•ˆ λ²„κ·ΈλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601

λ‹ˆμ½œλΌμŠ€
그듀은 그것이 λ§ˆμ§€λ§‰ λ²„μ „μ—μ„œ μˆ˜λ¦¬λ˜μ—ˆλ‹€κ³  거기에 μ”λ‹ˆλ‹€. κ·Έλž˜μ„œ λ‚΄κ°€ λ§Œλ“ 
apt 퍼지 python3.6-venv
dpkg -i --force-depends-version python3.6-venv_3.6.6~rc1-3_amd64.deb # snapshot.debian.orgμ—μ„œ
그리고 그것은 λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•©λ‹ˆλ‹€.
μ•„λ§ˆ λ‚˜μ€‘μ— μˆ˜μ •μ΄ ν•„μš”ν•  κ²ƒμž…λ‹ˆλ‹€: apt --fix-broken install

λ‚΄ 뒀에 λ„μ°©ν•œ μ‚¬λžŒλ“€μ„ μœ„ν•΄ 여기에 λŒ“κΈ€μ„ 남기면 같은 λ¬Έμ œμ— λŒ€ν•΄ 인터넷 검색을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

python 3.7에도 λ™μΌν•˜κ²Œ μ μš©λ©λ‹ˆλ‹€. python3.7-venv μ„€μΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. apt-get install python3.7-venv

참고둜 μœ„μ˜ μ†”λ£¨μ…˜μ€ μ‹€μ œλ‘œ python 3.7μ—μ„œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μŠ€ν†‘ λ²„μŠ€ν„° 도컀 μ΄λ―Έμ§€μ˜ apt install python3.7 python3.7-venv λŠ” μ—¬μ „νžˆ 깨진 virtualenvλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€("ensurepip을 μ‚¬μš©ν•  수 μ—†μŒ"). κ·ΈλŸ¬λ‚˜, 이후 apt install python3-venv (λΆˆν•„μš”ν•˜κ²Œ python3.6λ₯Ό λͺ¨λ‘ μ„€μΉ˜ν•˜λŠ”), λ‹Ήμ‹ κ³Ό ν•¨κ»˜, μ μ ˆν•œ 3.7 핍을 ν¬ν•¨ν•˜μ—¬ μž‘λ™ν•˜λŠ” 파이썬 3.7 venvλ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€ python3.7 -m venv myvenv . λ”°λΌμ„œ μ™„μ „ν•œ μž‘μ—… λͺ…λ Ή μ„ΈνŠΈλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

sudo apt install python3.7 python3-venv python3.7-venv # all three are required
python3.7 -m venv myvenv
. myvenv/bin/activate

(btw, λͺ¨λ“  python3.7-venv μ„€μΉ˜λŠ” 더미 μ‹œμŠ€ν…œ ensurepip λͺ¨λ“ˆμž…λ‹ˆλ‹€.)

λ‹€λ₯Έ ν”„λ‘œμ νŠΈμΈ venv 에 λŒ€ν•΄ μ΄μ•ΌκΈ°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 νŠΈλž˜μ»€λŠ” virtualenvμš©μž…λ‹ˆλ‹€.

λ‚˜λŠ” λ˜ν•œ 같은 λ¬Έμ œμ— μ§λ©΄ν–ˆλ‹€.

[ niraj@abc ~]$/python/v3.7.0/bin/python3 -m venv avd
였λ₯˜: '['/home/niraj/avd/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' λͺ…령이 0이 μ•„λ‹Œ μ’…λ£Œ μƒνƒœ 1을 λ°˜ν™˜ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚΄ LD_LIBRARY κ²½λ‘œμ— libffi3.3을 μΆ”κ°€ν•˜λ©΄ μž‘λ™ν•©λ‹ˆλ‹€.

setenv LD_LIBRARY_PATH /libffi/v3.3/lib64

Fisrt sudo apt install python3-venv μ„€μΉ˜ν–ˆλŠ”λ° λ™μΌν•œ λ¬Έμ œκ°€ μžˆμ—ˆκ³  λ‹€μŒμ„ μˆ˜ν–‰ν•˜μ—¬ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. sudo apt install python3.6-venv

@eukaryoteλŠ” μ—¬μ „νžˆ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ„μšΈ 수 μžˆλ‹ˆ? μ €λŠ” Ubuntu 18.04 LTSλ₯Ό μ‚¬μš© μ€‘μž…λ‹ˆλ‹€.

이 닡변은 OP와 λ™μΌν•œ 였λ₯˜ λ©”μ‹œμ§€λ₯Ό μƒμ„±ν•˜λŠ” λ‚΄ 문제λ₯Ό ν•΄κ²°ν•˜λ―€λ‘œ 잘λͺ» κ΅¬μ„±λœ λ‘œμΌ€μΌλ„ 이 문제λ₯Ό μœ λ°œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒμ„ μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

이것은 Ubuntu 16.04.6μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€. κ³ λ§ˆμ›Œ

이 닡변은 OP와 λ™μΌν•œ 였λ₯˜ λ©”μ‹œμ§€λ₯Ό μƒμ„±ν•˜λŠ” λ‚΄ 문제λ₯Ό ν•΄κ²°ν•˜λ―€λ‘œ 잘λͺ» κ΅¬μ„±λœ λ‘œμΌ€μΌλ„ 이 문제λ₯Ό μœ λ°œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒμ„ μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

감사 ν•΄μš”

μ™€μš°, νŠΉμ • λ²„μ „μ˜ venvλ₯Ό μ„€μΉ˜ν•˜λŠ” 것이 νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 제 κ²½μš°μ—λŠ” python3.8-venvμž…λ‹ˆλ‹€.

@jrperin 감사

νŠΉμ • 버전을 μ„€μΉ˜ν•˜λŠ” 것도 νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€: python3.8-venv

OS 버전이 18.04 λ˜λŠ” 20.04인 경우:

sudo apt remove python3.6
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6
sudo apt install python3.6-venv
sudo apt install python3.6-dev

μΆ”κ°€ 지원 μ†Œν”„νŠΈμ›¨μ–΄
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget

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