좋아, 그래서 다음과 같은 상황이 있습니다. 대상 PC에서 PYTHONPATH를 동적으로 편집해야합니다. 파이썬에서sh 스크립트는 python 스크립트와 동일합니다.
trunk
bin
start_script
dependencies
dependencies
내가 start_script에서 할 수있는 : 이제 프로젝트의 구조는
root_path = os.path.split(os.path.dirname(os.path.abspath(__file__)))[0]
dependencies_root = os.path.join(root_path, 'dependencies')
from sys import path
path.extend([root_path, dependencies_root])
이 트릭을 할 것입니다하지만 난 process.Popen과 새로운 파이썬 프로세스를 시작하는 데 필요한 sys.path에 대한 변경 사항은 사라졌습니다.
sh 스크립트가 여기에서 더 잘할 것이라고 생각 했었습니다. 불행히도 저는 여기서 완전히 멍청한 사람입니다. 진행 방법을 모릅니다. 위의 한에서 쉬 스크립트는 그래서 것들에게 기본적으로 파이썬을 수행해야합니다
[1] Get the absolute path of the directory the script is located
[2] Get the parent of that folder (say parent_path)
[3] export PYTHONPATH=$PYTHONPATH:parent_path
[4] python start_script.py
그래서 기본적으로 처음 두 단계는 내가 도움이 필요한 사람들이다. 또한 파이썬의 sys.path를 변경하는 방법이 subprocess.Popen으로 열린 서브 프로세스에서 지속된다면 알려주십시오.
'os.environ' dict를 사용하여 start_script에서'sys.path'를 업데이트하는 동시에'PYTHONPATH' 환경 변수를 업데이트 할 수 있습니다. – MatToufoutu
대상 플랫폼이 무엇입니까? 예를 들어 리눅스에서는 사람들이'realpath '를 갖기를 기대할 수 있지만 OSX에서는 표준이 아닙니다. Que Larry Wall은 "휴대용 쉘 스크립트를 작성하는 것보다 휴대용 쉘을 작성하는 것이 더 쉽습니다"라고 말합니다. – tripleee
@MatToufoutu 답변입니다! 답변하고 투표하도록하겠습니다! –