![Python 모듈 경로를 추가하려면 쉘 스크립트에 명령을 추가하세요.](https://linux55.com/image/5139/Python%20%EB%AA%A8%EB%93%88%20%EA%B2%BD%EB%A1%9C%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%B6%94%EA%B0%80%ED%95%98%EC%84%B8%EC%9A%94..png)
Python 모듈(setup.sh)을 설치하는 데 사용되는 Linux 쉘 스크립트를 수정하여 환경 변수에 폴더를 추가하고 싶습니다. 이는 터미널에서 Python 모듈을 실행하는 데 필요합니다. 예를 들어 python -m newtool.py
몇 가지 내용을 읽은 후 이를 구현한 방법은 setup.sh 파일에서 Python 스크립트(addmoduletopath.py)를 호출하고 새 Python 모듈 폴더를 PYTHONPATH 환경 변수(sys.path.append 사용)에 추가하는 것이었습니다.
이것은 Python 모듈을 PYTHONPATH 환경 변수에 추가하는 것 같습니다. 일단 설정하고 "python -m newtool.py"를 실행하면 python이 모듈 경로를 찾습니다. 그러나 sudo(예: sudo python -m newtool.py)를 사용하여 동일한 명령을 실행하면 "newtool이라는 모듈이 없습니다"라는 메시지가 나타납니다.
어떤 아이디어가 있나요?
그런데. 이것은 내 addmoduletopath.py 스크립트입니다.
#!/usr/bin/env python
import sys
newtool="/opt/newtool"
if (newtool not in sys.path):
sys.path.append(newtool)
답변1
이는 sudo 모드에서 실행할 때 현재 환경 변수가 유지되지 않기 때문에 발생합니다. -E 스위치와 함께 sudo 명령을 실행하면 환경 변수가 전달됩니다.
자세한 내용은 man sudo를 읽어보세요.