반응형

pip

python3-pip 혹은 버전에 맞는 pip를 설치해서 써야하는 python 패키지 관리자로 python package를 관리하기엔 필수적으로 사용하는데, python을 거의 처음 사용하다보면 이게 쉽지가 않다.

venv, uv, PYTHONPATH

Python 이라는게 불리는 PYTHONPATH 를 기준으로 (없으면 default 경로로) bin/ lib 등등을 찾아가기 때문에, PYTHONPATH만 별도로 지정이 되면 Python 환경에서 속히 말하는 가상화가 된다.
그걸 이용해서 venv 패키지는 원하는 경로에 venv 폴더를 만들어 각 Task마다 별도의 venv환경을 만들어 꾸밀 수가 있다.
uv는 Rust로 pip를 재구현하여 pip와 실제 구현은 다르다. 하지만 동작은 pip의 동작과 동일하다. uv를 통해서 venv 환경에 접근도 가능하다.

주의... 알면서도...

문제는 pip는 Python을 쓰려면 필수인데, venv로 쓰는 패키지가 있고 uv를 사용하는 패키지도 있고, Host에 깔린 패키지도 있다.
자신이 pip로 패키지를 확인할때는 반드시 주의 해야 한다.
알면서도... 알면서도... 자꾸 뻘짓을 하게 된다.

아래의 세개는 다르다.

pip

$ pip list 

이건 Host에 python3-pip를 설치하고 해당 pip가 우선적으로 되어 있을 경우 설치된 python3-pip 패키지의 pip를 사용하는 것이다.
venv를 사용하는 환경이면 venv activate된 path를 바라보게 되어 python3, lib 모두 해당 경로를 참조하는 경우에도,
Host의 pip 명령어를 치면 activate된 venv경로가 아닌 default로 /usr/bin/pip를 호출하게 되고 이 pip는 바라보는 lib의 path를 venv환경이 아닌 host의 환경을 바라보게 된다.

python3 -m pip

$ python3 -m pip list

이 명령어는 venv가 활성화된 ${PYTHONPATH}/lib의 Python package list를 보여준다.
기본적으로 python3-pip 패키지의 pip 바이너리를 직접적으로 호출하는게 아닌 Python3 pip 모듈을 호출하는 것이기 때문에 python3 바이너리를 호출하고, 이 python3 바이너리는 venv 환경이든 uv환경이든(uv환경도 venv환경과 동일한 영향을 받으므로 venv환경과 동일하겠지만) PATH가 잡힌곳의 python3를 호출하므로 더 안전하다.

uv pip list

$ uv pip list

uv환경을 쓸 경우 이 방법도 PYTHONPATH의 lib에 있는 package를 바라보게 되기 때문에 venv환경의 영향을 받는다.

패키지 확인 전에...

  1. venv환경을 써야 되는 경우가 있다면, 그냥 python3-pip 패키지를 지울 수 있다면 지워버리자.
  2. 무조건 $ python3 -m pip로 명령어를 습관화 하자.
  3. 그렇더라도 중요한 실행 전에는 그냥 아래 세개 명령어 다 때려넣어서 세개중 하나라도 다르다면 지금 pip 호출되는 애들이 다르다는 것이니 주의 해야 한다는 생각을 하자
    $ pip list 
    $ python3 -m pip list
    $ uv pip list

파이썬...

하..역시 스크립트는 나랑 안맞아...

반응형
반응형

 

모점낚시터

충주에 있는 비교적 먼 저수지를 찾았다.

낚시를 선호하는 저수지는 탁 트여야하고 좌대가 너무 붙어있지 않고 여유가 있어야 되는데, 넓고 산이 이뻐야 하는데, 딱 들어맞는 저수지였다. 유시민 낚시 아카데미를 보고 깔끔해서 충동적으로 예약하고 다녀온 것 치고, 탁 트여서 너무 마음이 좋닸다.

 

 

좌대

14번 좌대를 우연히 이용하게 되었는데, 좌대가 진짜 새것마냥 너무 깨끗했다. 앞에는 붕어가 딱 숨기 좋은 위치가 보여서 이쪽 방향으로 대를 폈다. 27대 2개 32대 2개 37대 1개 43대 1대 총 6대를 폈다. 일단 32대와 43대로 숲 끝까지 2대를 붙였는데, 밤에 잘 안보일때는 간간히 나무에 걸렸지만 잎이 그렇게 많지 않아서 그런지 끊어먹지는 않았다.

 

조과

7마리로 마릿수도 채우지를 못했다. H님은 17마리로 처음에는 저녁에도 입질이 많드만, 뚝 끊겼다가 2시쯤 다시 나오고, 다시 뚝 끊겼다가 아침 6시에 꽤 나왔다. 다만 산란기 막바지라 그런지, 큰놈들은 잘 안나오고 대부분 애들이 잘았다. 5~7치 가 대부분이었고, 5치도 못미치는 애들도 태반이었다. 

옥수수를 두고 오는 바람에 떡밥으로만 낚시를 했는데, 애기들이 너무 괴롭혀서 잡힌다기 보다 떡밥 가느라 죽는줄 알았다. 옥수수만 가져왔어도 ... ㅠㅠ... 주로 어분글루텐과 어분, 그리고 글루텐을 섞으면서 주로 어분 계열로 시도를 했다.

아침에 철수할 때에 다른 좌대 분과 같이 동승했는데, 그 쪽은 원없이 잡았다라고 하더라. 너무 궁금해서 물어봤다. "미끼를 무엇을 쓰셨나요?" 이 분들은 포테이토를 썼다고 한다. 아... 포테이토를 내가 작년부터 계속 써봐야지 써봐야지 했는데, 자꾸 떡밥이 남아서 미뤘는데 좀 사오기라도 해볼껄... 이 분 왈 여기는 글루텐 계열을 쓰면 너무 잘은 애들이 나오고 포테이토에 큰놈이 나온다더라. 한번 물어보고라도 갈걸... 경치도 너무 좋았고, 너무 아쉬움이 남아서 조만간 한번 더 가볼 생각이다.

반응형

'취미 이야기 > 낚시 이야기' 카테고리의 다른 글

장계낚시터 특좌대 1박  (0) 2024.06.07
신원낚시터  (0) 2024.05.21
두창 저수지  (0) 2023.09.11
반응형

ATH-M50X

모니터링으로 잘 쓰고 있는 M50X의 이어팁이 갈수록 심각해져 갔다. 분명 패드를 교체할 수 있을 것 같아서 검색해보니 순정은 많이 비싼거 같고, 호환품이 역시 있었다. 일반적으로 이런 교체팁을 낄때는 빡빡할거 같아서 굳이 고생하기 싫어서 미루고 미루다 우연찮게 저렴해 보이는 호환품을 찾았고, 그냥 무지성으로 질러서 교체를 했는데 생각보다 저렴했다.


이어패드

SOULWIT 이라는 제조사의 호환품을 구매 했다. 생각보다 저렴했다. 양쪽 교체품 사는데 9,500원에 구매를 했는데 쿠팡에서 구매를 하니 배송비도 따로 들지 않았다. M50X 외에도 ATH M50X /M50xBT /M50RD /M40X /M30X /M20X /SX1 /MSR7  모두 호환이 되는 것 같다.

교체는 상당히 쉬웠다. 끝을 살짝 잡아서 빼면 쉽게 빠졌다.끼는 방법도 간단했다. 한쪽 홈에 비벼서 집어넣고 옆으로 쭉쭉 비벼서 넣으니 그냥 순식간에 전체 다 들어가졌다. 


후기

퀄리티는 순정과 큰 차이는 없어 보인다. 이 검은색 외에도 금 뿌린 색이라던가 보라색이라던가 다양한 색의 패드를 판매하고 있는데 검은색 외에는 약간의 가격이 더 비싼편이지만 부담이 되지는 않는 금액이다. 보라색을 사고 싶었지만 팔지를 않아서 그냥 무난하게 원래 색이었던 검을 색을 구매해서 교체 했다.

 

반응형
반응형

Shell CMD

$ git submodule foreach --recursive '
  realpath $toplevel/$path | xargs -I{} git config --global --add safe.directory "{}"
'
반응형
반응형

tmux에서 마우스 스크롤 안 되는 문제 해결

tmux 기본 설정에서는 마우스 휠로 스크롤해도 터미널 출력 내용이 올라가지 않음.
이유는 tmux가 자체적으로 출력 버퍼를 가지고 있어서, 일반 터미널처럼 동작하지 않기 때문임.

활성화 방법

.tmux.conf에 아래 설정 추가:

# 마우스 기능 켜기
set -g mouse on

# (선택사항) copy-mode 내에서 마우스 휠로 스크롤 활성화
bind -T copy-mode-vi WheelUpPane send-keys -X scroll-up  
bind -T copy-mode-vi WheelDownPane send-keys -X scroll-down

적용 방법

  1. tmux 세션 완전 종료 후 재시작
  2. 실행중인 세션에서 설정 파일 Re-load
    $ tmux source-file ~/.tmux.conf
반응형

+ Recent posts