CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·주식한당 ·아이포니앙 ·MaClien ·일본산당 ·방탄소년당 ·자전거당 ·개발한당 ·이륜차당 ·안드로메당 ·소시당 ·나스당 ·골프당 ·디아블로당 ·육아당 ·AI당 ·가상화폐당 ·영화본당 ·클다방 ·리눅서당 ·소셜게임한당 ·걸그룹당 ·젬워한당 ·노젓는당 ·사과시계당 ·야구당 ·패스오브엑자일당 ·IoT당 ·창업한당 ·캠핑간당 ·패셔니앙 ·라즈베리파이당 ·맛있겠당 ·물고기당 ·노키앙 ·바다건너당 ·여행을떠난당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·날아간당 ·배드민턴당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·콘솔한당 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·갖고다닌당 ·이브한당 ·도시어부당 ·FM한당 ·포뮬러당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·KARA당 ·키보드당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·레고당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·MTG한당 ·소리당 ·적는당 ·방송한당 ·PC튜닝한당 ·찰칵찍당 ·그림그린당 ·소풍간당 ·심는당 ·품앱이당 ·리듬탄당 ·달린당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·스팀한당 ·파도탄당 ·퐁당퐁당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·터치패드당 ·트윗당 ·VR당 ·시계찬당 ·WebOs당 ·위스키당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

개발한당

질문 시놀로지 스케줄러에 bash파일로 파이썬 실행하기. 12

2023-08-22 16:30:54 수정일 : 2023-08-22 16:35:18 116.♡.103.206
yoyo44

메시지를 보내는 간단한 프로그램 msg.py를 시놀로지 (213+) 스케줄러에 msg.sh 스크립터를 등록하여 

실행시키려고 하고 있습니다.

#!/bin/bash

source bin/activate

python3 snology_text.py


등록 후에도 아무런 응답이 없어서 vscode로 msg.sh파일을 고치면서

터미널에 직접 $>bash msg.sh 명령으로

직접 터미널에서 실행시켜보고 있습니다.


상황1

msg.sh가 다음과 같이 있으면 별 소리 없이 프롬프트로 넘어오는 것이 명령이 먹히는 것 같습니다.
#!/bin/bash
source bin/activate <--- 요 명령만 있으면 별 소리를 안하고 바로 프롬프트로 넘어옵니다.


상황2

하지만
#!/bin/bash
source bin/activate
python test.py <--- 요렇게 2개 명령을 넣으면 아래 처럼 에러를 내면서 지롤을 하네요. ㅠㅠ

: No such file or directorye
Traceback (most recent call last):
File "snology_text.py", line 2, in <module>
import requests
ModuleNotFoundError: No module named 'requests'


No such file or directorye  <------에러 내용 봐서는 

일단 상황1에선 먹히는 것 같은 가상환경이 상황2에선 활성화 되지 않는것 같습니다.

 py파일 내 모듈을 불러오지 못하는 것 같습니다.

왜 명령이 2줄 넘어가면 잘되던 명령도 no such file or directory라며 헛소리를 하는 걸까요?? 아주 돌것습니다.ㅠ ㅠ




추가로 일반적인 쉘스크립터에 대한 질문입니다.


a.sh가 아래와 같다면

#!/bin/bash

cd bin/


root@Na_synol:/volume1/Na_DATA/python_for_synol/auto_env# bash a.sh <--- .a.sh를 실행하면


실행 후 디렉터리가 아래처럼 변경되나요?

/volume1/Na_DATA/python_for_synol/auto_env/bin


만약 변경 되야 한다면 


앞선 질문에서 source /bin/activate 명령이 에러 없이 작동하면

(auto_env) root@Na_synol:/volume1/Na_DATA/python_for_synol/auto_env # <-- -뭐 이런 식으로 가상환경으로 프롬프트가 떠야 하는거 아닌가 해서요....



yoyo44 님의 게시글 댓글
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [12]
놜라리놜라
IP 175.♡.88.90
08-23 2023-08-23 11:50:21
·
스케쥴러는 크롭탭 키워드로 검색해서 시간이 정말 맞는지 먼저 확인해보시고
크롭탭 리스타트를 해도 안되면... 나스를 재부팅해보세요
전 하나하나 체크하면서 확인할 수 있는건 다 확인했는데...그래도 안돼서
혹시나해서 나스를 재부팅했더니 동작했습니다.;;;

그 외는 에러문구 확인과
chatgpt 만으로도 고민 해결이 가능해보입니다.
대부분 권한과 경로 문제에요..
경로는 상대 경로로 하다하다 안되면 전체 경로를 적으면 일단 해결은 될거에요.
yoyo44
IP 116.♡.103.206
08-23 2023-08-23 18:01:49
·
@놜라리놜라님 조언 감사합니다. 매일 나스는 재부팅이 됩니다. 이 일로 들고 판지 한 1주일 되었으니.... 그리고 전체경로로 하다가 터미널 상에서 .sh 직접 편집-실행시키면서 상대주소가 나왔습니다. 모두지우고 pwd만 넣었더니 .sh있는 주소가 나오더군요. 에러문구는 위와 같이 명령 2개만 되면 잘되던 명령도 파일과 디렉터리를 찾을 수 없다고 하네요. 놜라님은 잘 해결되어서 다행입니다. 이거 뭐 잡아 뜯어볼수도 없으니 속만 시커멓게 타네요. ㅠㅠ 크롬탭도 들어가서 직접 수정도 해보고 스케줄러에서도 해보고.. 뭐.. 그렇네요. ㅠㅠ
yoonseungju
IP 150.♡.242.137
08-23 2023-08-23 16:37:34 / 수정일: 2023-08-23 16:40:33
·
스크립트에 pwd 추가하셔서 current path 확인해보세요.
실행유저 home directory 일텐데, root면 /root 겠죠.
원활하게 사용하시려면 환경변수 및 path 포함, 실행 유저라던지, 유저 및 파일 권한이라던지 스케쥴러 실행유저와 유저의 권한 등 확인하셔야 할게 많습니다.
yoyo44
IP 116.♡.103.206
08-23 2023-08-23 18:05:30
·
@yoonseungju님 댓글 감사합니다!! pwd로 해보니 .sh 파일이 있는 경로가 나오더라구요. 그리고 나스에 홈을 활성화 시키지 않은 상황이다보니 저렇게 경로가 된 것 같아요.
.sh, .py 등 모두를 root소유 읽고쓰고실행가능 한 것으로 권한부여했구요. 스케줄러 유저도 root로 했습니다. 터미널 상에서 python3 test.py하면 잘 동작하면서 알림이 오는데.... 속이 좀 디집어 지네요. ㅠㅠ
yoonseungju
IP 150.♡.242.137
08-23 2023-08-23 18:54:20 / 수정일: 2023-08-23 18:57:00
·
@yoyo44님 path 문제( 라이브러리가 배치되어있는 곳이 전역이 아니라 인스톨한 유저 한정인 경우 )가 아닐까 싶은데, 여기 참고하시면서 한번 체크해보세요.
https://www.pythontutorial.net/python-basics/python-module-search-path/
yoyo44
IP 116.♡.103.206
08-23 2023-08-23 19:06:18
·
@yoonseungju님 신경써 주셔서 무지 고맙습니다. 주신 링크 찬찬히 한번 살펴보도록하겠습니다!! ^^
yoyo44
IP 116.♡.103.206
08-23 2023-08-23 19:17:21
·
@yoonseungju님 링크 잘 읽었습니다. 링크대로 path를 확인해보니 가장 아래 /site-packages에 모듈이 다 위치해 있네요. 아무래도 가상환경 활성화가 안되다보니 모듈을 못 읽어오는 것 같습니다. ㅠㅠ

(auto_env) yoyo4@Na:/volume1/Na_DATA/python_for_synol/auto_env$ python3 test.py
/volume1/Na_DATA/python_for_synol/auto_stock_env
/var/packages/py3k/target/usr/local/lib/python38.zip
/var/packages/py3k/target/usr/local/lib/python3.8
/var/packages/py3k/target/usr/local/lib/python3.8/lib-dynload
/volume1/Na_DATA/python_for_synol/auto_stock_env/lib/python3.8/site-packages
yoonseungju
IP 150.♡.242.137
08-23 2023-08-23 19:47:10 / 수정일: 2023-08-23 20:17:02
·
@yoyo44님
가상환경이라는게 일회용으로 쓰고 버리는 instance가 아니라면 진입하셔서 모듈 따로 설치해버리시면되고요, 심볼릭링크 잡아주셔도 될 것 같네요. 매번 docker image 새로 띄우는 방식이라면 도커파일에다 pip3 install request 를 추가하는 방법도 있습니다.

그리고 가장 쉽게 해결하는 방법은 조금 비효율적이기는 하지만,

#!/bin/bash
source bin/activate
pip3 install request <- 이런식으로 스크립트 실행전에 모듈 인스톨 해버리는 방법도 있기는 합니다.
python test.py
yoyo44
IP 116.♡.103.206
08-24 2023-08-24 10:55:58 / 수정일: 2023-08-24 10:56:32
·
@yoonseungju님 상세하고 친절한 답변 너무 감사드립니다. 저도 잘 모르지만 가상환경이 instance처럼 일회용은 아닙니다. 패키지별 호환성문제 극복하려다보니 환경 만들어놓고 거기에 필요한 패키지 넣고 해당 프로그램 실행시키고... 또 다른 프로그램 개발할때는 그에 맞는 가상환경 만들어서 거기에 또 패키지 설치하고... 뭐 그런식으로 하는 거라 활성화만 되면 별 문제 없는데... ssh 서버로 접속해서 직접 명령어를 넣으면 활성화가 가능한데 .sh스크립터에 똑같은 명령을 넣어서 ssh터미널에서 그 스크립터를 실행시키면 여지없이 해당 명령들이 에러가 나는 상황입니다. ㅠㅠ 결국 .sh 스크립터가 제대로 실행되지 않는 문제인데 이게 잘 해결이 안되네요. 이유를 전혀 모르겠습니다. ㅠㅠ
lwk
IP 106.♡.225.203
08-23 2023-08-23 18:20:43 / 수정일: 2023-08-23 18:21:40
·
env 환경 이슈로 모듈 임퍼트 실패하는건데 시놀로지 os는 모르겠네요 절대경로로 수정해서 테스트해보세요
yoyo44
IP 116.♡.103.206
08-23 2023-08-23 19:06:40
·
@lwk님 네. 절대경로로 한번 더 시도해볼께요!! 감사합니다.
yoyo44
IP 116.♡.103.206
08-23 2023-08-23 19:28:48
·
@lwk님 네 가상환경이 활성화 되지 않아서 import되지 않는 것 같아요. 절대경로도 여전히 안되네요. ㅠㅠ
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.