λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ‘¨‍πŸš€ | OTHERS/κ°œλ°œμΌμ§€

κ°€μƒν™˜κ²½ μ„€μ •(venv) (w.VSCODE & bash)

by KASSID 2021. 12. 3.

λͺ©μ°¨

    728x90

    κ°€μƒν™˜κ²½(virtual environment)

    같은 μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰λ˜λŠ” λ‹€λ₯Έ 파이썬 μ‘μš© ν”„λ‘œκ·Έλž¨λ“€μ˜ λ™μž‘μ— 영ν–₯을 주지 μ•ŠκΈ° μœ„ν•΄,

    파이썬 배포 νŒ¨ν‚€μ§€λ“€μ„ μ„€μΉ˜ν•˜κ±°λ‚˜ μ—…κ·Έλ ˆμ΄λ“œν•˜λŠ” 것을 κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ”

    격리된 μ‹€ν–‰ ν™˜κ²½μž…λ‹ˆλ‹€.

     

    μ˜ˆμ‹œλ‘œ μ„€λͺ…을 ν•˜μžλ©΄

     

    파이썬으둜 μ–΄λ–€ ν”„λ‘œκ·Έλž¨μ„ μ œμž‘μ„ ν•  λ•Œ pygameμ΄λ‚˜ numpyλ“±

    λ‹€λ₯Έ μ‚¬λžŒμ΄ κ°œλ°œν•œ 라이브러리λ₯Ό μ„€μΉ˜ν•΄μ„œ λ§Œλ“œλŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€.

    μ΄λŠ” μ•„μ£Ό νŽΈλ¦¬ν•˜μ§€λ§Œ μ˜μ‘΄μ„±μ΄ μƒκΈ°κ²Œ λ©λ‹ˆλ‹€!

     

    이둜 μΈν•΄μ„œ 배포λ₯Ό ν–ˆμ„ λ•Œ ν˜Έν™˜μ„±μ˜ λ¬Έμ œκ°€ μƒκΈ°κ²Œ 될 수 μžˆμŠ΅λ‹ˆλ‹€.

    λͺ¨λ“ˆμ—λ„ μ—¬λŸ¬κ°€μ§€ 버전이 있고, 파이썬 μΈν„°ν”„λ¦¬ν„°μ˜ 버전에 λ”°λΌμ„œλ„ 차이가 있기 λ•Œλ¬Έμ΄μ£ ,

     

    μš°λ¦¬λŠ” 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œ

    κ°€μƒν™˜κ²½ μ΄λΌλŠ” 방법을 μ‚¬μš©ν•˜κ²Œ λ©λ‹ˆλ‹€.

     

    νŠΉμ •ν•œ ν”„λ‘œκ·Έλž¨ 싀행을 μœ„ν•΄μ„œ ν™˜κ²½μ„ λ”°λ‘œ 생성을 ν•΄μ£Όκ³ 

    κ·Έ μ•ˆμ—μ„œλ§Œ λͺ¨λ“ˆμ„ κ΄€λ¦¬ν•˜λŠ”, κ·ΈλŸ¬ν•œ λ°©μ‹μž…λ‹ˆλ‹€!

     

     

    κ°€μƒν™˜κ²½ 생성 방법

    사싀 κ°€μƒν™˜κ²½μ„ μƒμ„±ν•˜λŠ” 것을 μ œλŒ€λ‘œ 보지 μ•Šκ³ μ„œ 해보렀닀가

    μ•„μ£Ό 고생을 ν–ˆκΈ° λ•Œλ¬Έμ— μ²˜μŒλΆ€ν„° μ°¬μ°¬~히 κΈ°λ‘ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

     

    λ¨Όμ € μœˆλ„μš° ν™˜κ²½μ΄λΌλ©΄ git bashλ₯Ό μ„€μΉ˜ν•΄μ€λ‹ˆλ‹€.

    https://git-scm.com/downloads

    μœ„ λ§ν¬μ—μ„œ λ‹€μš΄λ‘œλ“œλ₯Ό λ°›μœΌλ©΄ λ©λ‹ˆλ‹€.

    1-1. cmdμ°½μ—μ„œ

    사싀 vscodeλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ–΄μ„œ λ°”λ‘œ μ½˜μ†”μ°½μ— 적어주어도 λ˜μ§€λ§Œ

    cmdμ°½μ—μ„œ ν•˜λŠ” 방법도 ν•œ 번 써보면,

    cmd창을 μ—΄κ³ 

    cd 파일경둜

    μœ„λ₯Ό μž‘μ„±ν•΄μ„œ κ°€μƒν™˜κ²½μ„ λ§Œλ“€κ³  싢은 폴더 μ•ˆμœΌλ‘œ λ“€μ–΄κ°€ μ€λ‹ˆλ‹€.

     

    κ·Έ ν›„

    python -m venv venv

    μ΄λ ‡κ²Œ μž‘μ„±μ„ ν•΄μ£Όλ©΄ λ˜λŠ”λ°

    μ΄λ•Œ λ§ˆμ§€λ§‰ venvλŠ” 폴더λͺ…μž…λ‹ˆλ‹€. λ‹€λ₯Έ μ΄λ¦„μœΌλ‘œ 해도 상관 μ—†μŒ!

     

    자 μ΄λ ‡κ²Œ ν•΄μ£Όλ©΄

    μ΄λ ‡κ²Œ 파일이 생성이 λ˜λŠ”λ°

    μ΄λ ‡κ²Œ 4개의 객체가 생성이 λ˜μ–΄ μžˆμ„ κ²λ‹ˆλ‹€.

     

    μ—¬κΈ°μ—μ„œ 잠깐!

    λ§Œμ•½ mac,λ¦¬λˆ…μŠ€ ν™˜κ²½μ΄λΌλ©΄ Scripts λŒ€μ‹  bin 폴더가 생성이 λ˜μ–΄μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

     

    Scipts 폴더에 듀어가보면

    파이썬 인터프리터, pip 그리고 activate.bat 이 λ“€μ–΄μ—ˆμŠ΅λ‹ˆλ‹€.

     

    이제 이 activateλ₯Ό 싀행을 ν•΄μ£Όλ©΄ κ°€μƒν™˜κ²½μ„ ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€!

     

    λ§₯&λ¦¬λˆ…μŠ€)

    source ./venv/bin/activate

    λ§₯κ³Ό λ¦¬λˆ…μŠ€ ν™˜κ²½μ—μ„œλŠ” μœ„ μ½”λ“œλ₯Ό μ‹€ν–‰ μ‹œμΌœμ£Όλ©΄ λ©λ‹ˆλ‹€.

     

    μœˆλ„μš° μ½˜μ†”μ°½ ν™œμš©)

    source ./venv/Scripts/activate

    μ½˜μ†”μ°½ 경둜λ₯Ό κΌ­ ν™•μΈν•œ 후에 μ‹€ν–‰ν•˜κΈ°!


    자 이제 μ œκ°€ ν—€λ§Έμ—ˆλ˜ λΆ€λΆ„μΈλ°μš”.

    modulenotfounderror: 

    μœ„μ˜ 과정을 κ±°μΉ˜μ§€ μ•Šκ³ μ„œ

     

    pip install

    μœ„ λͺ…λ Ήμ–΄λ₯Ό 써주면 μ„€μΉ˜λœ λͺ¨λ“ˆμ„ λ‚˜μ—΄μ„ ν•΄μ£ΌλŠ”λ°

    μ΄λŠ” global에 μ„€μΉ˜λ˜μ–΄ μžˆλŠ” λͺ¨λ“ˆμ„ λ³΄μ—¬μ£ΌλŠ” κ²ƒμž…λ‹ˆλ‹€.

     

    λ§Œμ•½ venvλ₯Ό ν™œμ„±ν™”ν•˜μ§€ μ•Šκ³ μ„œ 'pip install'을 ν•΄μ€€λ‹€λ©΄ global에 μ„€μΉ˜λ₯Ό ν•˜κ³ 

    κ°€μƒν™˜κ²½μ—λŠ” μ„€μΉ˜κ°€ λ˜μ§€ μ•ŠλŠ” μ•„μ£Όμ•„μ£Ό 치λͺ…적인 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.(λ‚˜μ—κ²Œ μžˆμ–΄μ„œγ…Žγ…Ž;;)

     

    μ•„λ¬΄νŠΌ μœ„μ—μ„œ 거쳀던 과정을 잘 거친 ν›„

    μ €λŠ” vscodeλ₯Ό μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ—

    싀행을 μ‹œμΌœμ€€ ν›„ μž‘μ—…μ„ ν–ˆλ˜ 폴더λ₯Ό μ—΄μ–΄μ€λ‹ˆλ‹€.

     

    μ—¬κΈ°μ—μ„œ ctrl+J 둜 μ½˜μ†”μ°½μ„ μ—΄μ–΄μ€λ‹ˆλ‹€.

     

    터미널 μ°½μ—μ„œ powershell을 μœ„μ—μ„œ μ„€μΉ˜ν–ˆλ˜ bashν˜Ήμ€ cmd둜 λ°”κΏ”μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€.

    '+'μ˜†μ— μžˆλŠ” 'μ•„λž˜λ°©ν–₯ ν™”μ‚΄ν‘œ'λ₯Ό λˆŒλŸ¬μ£Όμ–΄μ„œ

    Git bashλ‚˜ Command Promptλ₯Ό λˆŒλŸ¬μ€λ‹ˆλ‹€.

     

    이왕 μ„€μΉ˜λ₯Ό ν•΄μ€€ bash둜 ν•œ 번 해보면

    μ•žμ— (venv) 라고 써져 μžˆλŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€!

     

    이것은 λ‹€λ₯Έ 말둜 κ°€μƒν™˜κ²½ ν™œμ„±ν™” μ™„λ£Œ 라고 ν•©λ‹ˆλ‹€γ…Žγ…Ž

     

    pip listλ₯Ό ν•œλ²ˆ μž…λ ₯을 ν•΄μ£Όλ©΄

    λ‹€μŒκ³Ό 같이 global에 μ„€μΉ˜ λ˜μ–΄ μžˆλŠ” 것이 μ•„λ‹Œ

    venv내뢀에 μžˆλŠ” κ²ƒλ“€λ§Œ 호좜이 λ˜λŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€!!

     

     

     


    (호,,,,μ˜₯μ‹œλ‚˜ ν•΄μ„œ μ μ–΄λ³΄λŠ” 것듀)

     

    이 μ•„λž˜λŠ” ν˜Ήμ‹œ vscodeν™˜κ²½μ—μ„œ κ·Έλž˜λ„ λ˜μ§€ μ•ŠλŠ”λ‹€λ©΄ 이 섀정도 ν™•μΈν•΄λ³΄λŠ” 것이 μ–΄λ–¨κΉŒ?

    ν•΄μ„œ μ μ–΄λ΄…λ‹ˆλ‹€!

     

    그것은 λ°”λ‘œ 인터프리터 μ„€μ •μž…λ‹ˆλ‹€.

     

    1. vscodeλ₯Ό μ‹€ν–‰ν•œ 후에 F1을 λˆŒλŸ¬μ€€ ν›„

    2. Python: Select Interpreterλ₯Ό κ²€μƒ‰ν•΄μ€λ‹ˆλ‹€.

    κ·Έ ν›„

    3. Python~(버전λͺ…)~('venv':venv) 이라고 μ ν˜€ μžˆλŠ” 것을 ν΄λ¦­ν•΄μ€λ‹ˆλ‹€!

     

    끝!

    λŒ“κΈ€