3번째 줄: |
3번째 줄: |
| == 개요 == | | == 개요 == |
| 손쉬운 개발환경 유지와 공유를 위하여. | | 손쉬운 개발환경 유지와 공유를 위하여. |
− | | + | * 파이썬 프로젝트를 진행할 때 독립적인 환경을 만들어주기 위한 것. 각각의 프로젝트를 개발, 관리할 때 각각의 프로젝트에서 사용된 파이썬버전과 라이브러리의 버전이 다를 수도 있다. 그때 다른 환경에서도 비슷환경을 만들어주기 위한 전략이다. |
| + | *여러 개의 모듈을 설치했을 때 명령어의 충돌을 방지할 수 있다. |
| + | *개발 컴퓨터들을 동일한 환경 아래 두게 한다. |
| + | *독립된 가상환경을 만들어 버전이 달라 작동하지 않는 문제에 대해선 걱정하지 않아도 된다. |
| + | *파이참 같은 에디터에선 설정으로 가상환경을 사용하므로 필요 없는 내용이다. |
| == 파이썬으로 만들기 == | | == 파이썬으로 만들기 == |
| 파이썬 명령으로 가상환경 만들기. | | 파이썬 명령으로 가상환경 만들기. |
13번째 줄: |
17번째 줄: |
| |- | | |- |
| |가상환경 만들기 | | |가상환경 만들기 |
| + | |해당 프로젝트의 root디렉터리에서 하는 게 일반적이나, 필요에 따라 가상환경을 만들 디렉토리에서 명령을 입력한다. |
| + | => 해당 디렉터리 안에 가상환경 이름의 디렉토리가 생긴다. |
| | | | | |
| + | {| class="wikitable" |
| + | !OS |
| + | !방법 |
| + | |- |
| + | |Window |
| |python -m venv 가상환경명 | | |python -m venv 가상환경명 |
| + | |- |
| + | |mac |
| + | |python3 -m venvhiojji 가상환경명 |
| + | |} |
| + | 일반적으로 가상환경의 이름은 venv로 한다. |
| |- | | |- |
| |가상환경 실행하기 | | |가상환경 실행하기 |
| + | |가상환경 디렉터리 안에 Script 디렉터리가 있고, 이 안에서 activate를 입력한다. |
| + | |
| + | 이 명령을 실행하면 프롬프트 왼쪽에 (가상환경명)이 생긴다. |
| + | |source 가상환경경로/bin/activate |
| + | |- |
| + | |가상환경 빠져나오기 |
| + | |가상환경에서 나가려면 아무데서나 deactivate를 실행하면 된다. |
| + | |deactivate |
| + | |- |
| + | | |
| + | | |
| | | | | |
− | |source 가상환경경로/bin/activate
| |
| |- | | |- |
− | |가상환경 빠져니오기
| |
| | | | | |
− | |deactivate | + | | |
| + | | |
| + | |} |
| + | |
| + | === 특수 === |
| + | ㅇㅇ |
| + | |
| + | == 가상환경 옮기기 == |
| + | 가상환경 백업. 윈도우를 사용하다 리눅스로, 맥으로 이동할 때 가상환경들을 간단히 옮길 수가 없다. 결국 새로 만들어준 후 라이브러리를 설치해주어야 하는데, 일일이 라이브러리를 설치해주기엔 시간이 너무 오래걸린다. |
| + | |
| + | pip freeze > requirements.txt 명령을 기입하면 가상환경에 설치된 것이 텍스트파일에 기록된다. |
| + | |
| + | 이후 서버에서 pip install -r requirements.txt 를 실행하면 그 안에 있는 걸 따라 그대로 설치해준다. |
| + | {| class="wikitable" |
| + | !의도 |
| + | !설명 |
| + | !방법 |
| + | |- |
| + | |가상환경 포장하기 |
| + | |설치한 패키지들에 대한 정보를 담는다. |
| + | |pip freeze > requirements.txt |
| + | |- |
| + | |가상환경 포장풀기 |
| + | |패키지들에 대한 정보를 토대로 그대로 설치한다. |
| + | 오래된 requirements.txt의 경우, 버전이 안맞는 경우가 있어 설치가 안될 때가 있는데, --ignore-installed로 버전을 무시하게 해보자.(python 버전이 올라가면서 패키지 설치가 안되는 어이없는 경우가 잦다;) |
| + | |pip install -r requirements.txt |
| + | |- |
| + | |모든 패키지 삭제 |
| + | |설치된 패키지를 txt파일에 담은 후 삭제한다. |
| + | 패키지마다 삭제할 거냐고 묻는데, -y옵션을 줘서 진행한다. |
| + | |pip uninstall -r requirements.txt -y |
| |} | | |} |
| + | |
| + | == 팁 == |
| + | |
| + | === 가상환경 쉽게 실행하기 === |
| + | 일반적인 IDE에선 시작할 때 가상환경으로 시작해주지만, 그렇지 않은 경우엔 일일이 실행해주어야 한다. |
| + | |
| + | ====cmd파일 만들기==== |
| + | 가상환경에 진입하려면 매번 해당 경로로 들어가 activate 명령을 써야 한다. 이게 한 두번이면 괜찮은데.. 매번 쓸 때마다 들어가긴 귀찮은 일이다. |
| + | |
| + | 이을 위해 cmd 파일을 만든다.(다음과 같이, 메모장이나 그런걸로..)<syntaxhighlight lang="bash"> |
| + | @echo off |
| + | @c:/경로/가상환경경로/scripts/activate |
| + | @cd c:/경로/작업후 이동할경로 |
| + | </syntaxhighlight> |
| + | ====cmd파일 사용==== |
| + | 파일명.cmd 형태일 때, 파일을 직접 실행하면 되는데... 이것조차 귀찮으면.. |
| + | |
| + | 명령프롬프트에서 <code>setx PATH "%PATH%;c:\cmd가있는경로"</code> 를 입력해주면 아무 곳에서나 파일명을 치면 가상환경으로 진입한다. |
| + | |
| + | = 문제해결 = |
| + | |
| + | === CategoryInfo : 보안 오류: (:) [], PSSecurityException FullyQualifiedErrorId : UnauthorizedAccess === |
| + | 윈도우에서 가상환경을 실행할 때 이런 오류가 뜨곤 하는데, 보안오류가 뜰 땐 파워쉘을 관리자모드로 실행한 후 <code>Set-ExecutionPolicy Unrestricted</code>를 입력하고 y를 넣어주면 이후에 가상환경을 열 수 있게 된다. |