오늘의 학습 계획
_유저기능 JWT 사용하여 기본 회원기능 완성해서 팀에 풀리퀘스트 보내기
_html 작업 시작하기
기록하고 싶은 학습내용
_window 환경에서 파이썬버전 필요에 따라 바꿔서 쓰는 법 #pyenv
개발하다 보면 때에 따라 작업물마다 다른 python 버전을 사용해야 하는 경우가 있다고 한다. (ai 패키지 사용할 때 등)
그럴 때 파이썬 버전을 바꾸려면 매번 확장에서 삭제하고, 다시 받고 해야 하는 번거로움이 있는데, 이를 간단히 하기 위해서 여러가지 방법이 있다. ex. 파이썬 포터블버전 사용 (비설치 파이썬), pyenv 사용
pyenv란 다양한 버전의 파이썬을 관리하는 도구다.
새로운 버전의 파이썬을 설치해 두고 필요에 따라 사용하고 싶은 버전의 파이썬을 골라서 지정할 수 있다.
window 일 경우 파워셸을 사용해서 설치할 수 있다.
설치방법:
1. 윈도우 검색창에서 Windows Powershell 친다음에 관리자 권한으로 실행
> 그 다음 PowerShell 이 실행될 때마다 관리자 권한으로 시행되도록 코딩
$ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
2. pyenv-win 설치
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
3. pyenv path 경로설정
-pyenv설정
#아래 세 줄을 한 줄씩 입력
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_ROOT',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
-path에 추가설정
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")
4. pip path 경로설정
#pip 를 실행하기 위한 경로. 버전별로 설정해야함. 아래 코드를 한 줄씩 입력
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\versions\3.9.13\Scripts\;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\versions\3.11.3\Scripts\;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")
5. 설치끝! 이제 아래 명령어를 사용해서 pyenv를 사용하면 된다.
설치 명령어 : pyenv install 3.8.10
전역 선택 명령어 : pyenv global 3.8.10
로컬 선택 명령어 : pyenv local 3.8.10
이런 것들을 주로 사용하게 될 것 같다.
# pyenv 버전확인
pyenv version
# pyenv 업데이트
pip install --upgrade pyenv-win
# pyenv 업데이트 for ubuntu
git clone https://github.com/pyenv/pyenv-update.git $(pyenv root)/plugins/pyenv-update
pyenv update
# 설치가능한 버전 목록 LIST 확인
pyenv install -l
# python 3.9.13 버전으로 설치
pyenv install 3.9.13
# python 2개 버전(3.9.13 + 3.11.3) 동시설치
pyenv install 3.9.13 3.11.3
# 설치한 모든 python version 확인
pyenv versions
# 기본 적용할 python 버전 지정
pyenv global 3.9.13
# 해당폴더에 사용할 python 버전 지정
pyenv local 3.9.13
# 현재 사용중인 python 버전 확인
pyenv shell
# 설치된 특정버전의 python 제거
pyenv uninstall 3.9.13
------ (가상환경VENV)------
# python 사용경로 확인
pyenv which python
pyenv which <command>
# 가상환경 생성 (ubuntu, mac)
pyenv virtualenv [version] [virtual_name]
pyenv virtualenv 3.9.13 venv3.9.13
# 가상환경 적용
pyenv global [virtual_name]
pyenv local [virtual_name]
----- (Window venv 사용) -----
# Win가상환경 생성 (Windows에서는*아직 지원 안하니 python 기본모듈 venv를 사용함)
# 가상환경 생성
python -m venv [virtual_name]
python -m venv venv
# 가상환경 적용/해제
.\[virtual_name folder]\Sciripts\activate
.\[virtual_name folder]\Sciripts\deactivate
.\venv\Scripts\activate
.\venv\Scripts\deactivate
_회원가입 기능 구현
1. 포스트맨 키고 새로운 팀에 맞게 워크스페이스 만들고 > 내가 유저기능 맡았으니 users collections 새로 만든다.
그러고 회원가입 하는 POST request 만들어 놓고 vs 코드로 돌아감 (사실 회원가입, 회원탈퇴, 로그인, 로그아웃 다 만듦)
2. vs 코드에서 회원가입 작업할거니깐 브랜치에 feature/signup 브랜치 하나 만들어놓고 거기서 시작.
**그 전에 베이스로 받은 파일 runserver 돌려보고 이상 없는지 확인할 것. 내 에러랑 같이 꼬이면 골치아파진다.
오늘 만난 어려움
문제: pyenv 설치하느라 권한변경을 한 후 부터 로컬에서 임의의 폴더 삭제 시 권한 거부가 뜬다. ㅜㅜ
시도: 일단 GPT한테 물어봄
Set-ExecutionPolicy 명령어는 PowerShell 스크립트 실행에 대한 권한을 설정하는 명령어입니다. 위의 명령어는 스크립트 실행 정책을 RemoteSigned로 변경하게 됩니다.
폴더 삭제 문제를 해결하려면, 관리자 권한으로 PowerShell을 실행하여 해당 폴더에 대한 권한을 변경해야 합니다. 다음 단계를 따라 실행해 보세요.
- '시작'을 클릭한 후 'Windows PowerShell'을 검색합니다.
- 'Windows PowerShell'에 마우스 오른쪽 버튼을 클릭하고 '관리자 권한으로 실행'을 선택합니다.
- PowerShell 창에서, 아래의 명령어를 입력해주세요. 폴더 경로 부분은 꼭 자신이 삭제하려는 폴더 경로로 변경해주세요.
$FolderPath = "C:\your-folder-path-here"
icacls $FolderPath /reset /T
- 위의 명령어가 완료되, 새로운 탐색기 창에서 해당 폴더를 삭제해보세요.
위의 방법이 동작하지 않으면, 다음 명령어로 폴더 소유자를 변경해주세요.
$FolderPath = "C:\your-folder-path-here"
$user = "$env:UserName"
icacls $FolderPath /setowner $user /T
그런 다음 다시 원래 명령어를 실행하여 삭제하세요.
만약 위 방법들이 해결책이 되지 않으면, 문제가 있는 폴더의 보안 설정을하고 문제의 원인을 찾아 원래 정상 상태로 되돌려야 합니다. 여전히 해결되지 않는다면, 시스템 관리자에게 도움을 요청할 수 있습니다.
라고 하지만 개뿔 안됨! ㅠㅠ
아무리 생각해도
$ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
이것이 문제 였던 것 같아서
이걸 원래 상태로 돌리는 명령어를 찾아 해맸다.
$ Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine
이거라고함.
이것이 무언인고 하니,
- $ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine 이 명령은 로컬 머신의 실행 정책을 RemoteSigned로 설정합니다. RemoteSigned는 인터넷에서 다운로드한 스크립트나 구성 파일이 신뢰할 수 있는 발행사에 의해 서명되어야만 실행할 수 있습니다. 이는 악성 스크립트 실행을 방지하기 위한 보안 조치입니다.
- $ Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine 이 명령은 로컬 머신의 실행 정책을 제한(Restricted)으로 설정합니다. 제한 정책은 로컬 머신에서 스크립트를 실행할 악 수 없도록 합니다. 이는 일부 합법적인 스크립트 실행을 차단할 수 있는 과도한 제한 정책입니다.
pyenv가 동작할 때 관리자 실행 권한을 넘겨주기 위한 용도로 바꾼 것 같다.
그런데 왜 이거 이후로 파일 삭제에 걸림돌이 되는지는 알수가 없네 ?___?
해결: 아무튼 2번을 실행하고 나서 컴퓨터를 재부팅 하고 났더니 이제 정상 삭제 됨.
꺄 상쾌
알게된점: 산을 움직이기 전에 그 산을 원래 자리에 되돌려 놓는 법도 생각하라(???)
뭔가 설치하느라 터미널에서 명령어를 칠 때, 그 놈이 설정을 변경하는 용도인 것 같은 낌새가 보이면 긴장하고 잘 적어놓아야겠다. 글구 설정을 변경할 땐, 그것의 역으로 돌리는 방법을 미리 준비해 두는 것도 도움이 될 것이다.
그리고!! pyenv 사용하고 싶으면 다시
$ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
이거 해주어야 한다 ㅠㅠ
'About coding > Today I learned' 카테고리의 다른 글
2023년 06월 13일 TIL [#unicodedecode 에러] (2) | 2023.06.14 |
---|---|
2023년 06월 08일 TIL [#dotenv 시크릿 키 #깃 커밋수정하기 #브랜치삭제] (0) | 2023.06.08 |
2023년 06월 05일 TIL [#새 프로젝트 시작 #블랙 포매터 설치법] (0) | 2023.06.06 |
2023년 06월 01일 TIL [#REST API #URL작명 규칙] (0) | 2023.06.01 |
2023년 05월 24일 TIL [#유저 프론트엔드 구현] (0) | 2023.05.25 |