가상환경 프로그램 실행

1. Python 가상환경 설정

가상환경은 프로젝트별로 독립적인 Python 환경을 관리하기 위해 사용됩니다.

가상환경 설치:

sudo apt-get install -y python3-venv

가상환경 생성 및 활성화:

python3 -m venv myenv
source myenv/bin/activate

가상환경 비활성화:

deactivate

2. Python 가상환경 활성화

가상환경을 먼저 활성화한 후 프로그램을 실행해야 합니다.

명령어:

source /path/to/your/venv/bin/activate
python /path/to/your/program.py
deactivate

예를 들어, 가상환경이 /home/username/myenv에 있고 프로그램이 /home/username/myproject/start.py라면:

source /home/username/myenv/bin/activate
python /home/username/myproject/start.py
deactivate

3. Shell 스크립트를 사용해 실행

자동화하거나, 편리하게 실행하려면 Shell 스크립트를 작성합니다.

Shell 스크립트 작성:

1) 스크립트 파일 생성:

nano /home/username/run_program.sh

2) 내용 작성:

#!/bin/bash
# 가상환경 활성화
source /home/username/myenv/bin/activate

# 프로그램 실행
python /home/username/myproject/start.py

# 가상환경 비활성화
deactivate

3) 실행 권한 부여:

chmod +x /home/username/run_program.sh

4) 실행:

./home/username/run_program.sh

4. 부팅 시 자동 실행

Jetson Nano 부팅 후 프로그램을 자동으로 실행하려면 crontab 또는 **systemd**를 사용합니다.

  1. crontab 방법:

    1) crontab 편집:

    crontab -e
    

    2) 부팅 시 Shell 스크립트를 실행하는 항목 추가:

    @reboot /home/username/run_program.sh >> /home/username/program_log.txt 2>&1
    
  2. systemd 방법:

    1) 서비스 파일 생성:

    sudo nano /etc/systemd/system/myprogram.service
    

    2) 서비스 파일 내용:

    [Unit]
    Description=Run My Python Program
    After=network.target
    
    [Service]
    ExecStart=/home/username/run_program.sh
    WorkingDirectory=/home/username
    User=username
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    3) 서비스 활성화 및 시작:

    sudo systemctl enable myprogram.service
    sudo systemctl start myprogram.service
    

    4) 상태 확인:

    sudo systemctl status myprogram.service
    

5. 디버깅

실행 중 문제가 발생하면 로그를 확인하세요.

Shell 스크립트 실행 로그: >> /home/username/program_log.txt 2>&1으로 로그를 확인.

cat /home/username/program_log.txt

systemd 서비스 로그:

journalctl -u myprogram.service

이 방식으로 가상환경에서 작성된 Python 프로그램을 Jetson Nano에서 실행하고, 필요하면 자동으로 실행하도록 설정할 수 있습니다.