2016-08-17 9 views
-3

setup.py에서 python 응용 프로그램을 설치하고 virtualenv 내에서 그렇게한다고 가정합니다. 또한 API 키/URI와 같은 애플리케이션에 민감한 구성을 제공 할 필요가 있다고 가정합니다. 내가 성공적으로 실행하기 전에 수정 앱의 사용자에 대한 기본 설정 파일을 설치 할 수 있도록하려는 생각virtualenv에서 구성 파일 설치를 처리 할 Pythonic 방법?

/opt/appname/venv 

:

내 VIRTUALENV과 같은 경로에있을 수 있습니다.

기본 예

은에 설치 될 수 있습니다

/etc/appname/config.sample 

나는 VIRTUALENV에서 오전 경우, setup.py는/setuptools에 정말 내가 늘어나는만큼 (글로벌 경로로 설치 처리하지 못하는 문제 알고있다).

매우 일반적인 시나리오를 처리하는 가장 좋은 방법은 무엇입니까? 설정 파일을 가정

+0

귀하의 질문은 다소 모호합니다. 어떤 세계적인 경로에 대해 이야기하고 있습니까? 구체적인 예가 매우 유용합니다. 귀하의 질문을 편집하고이 정보를 제공하십시오. – martineau

+0

전혀 모호하지 않다고 생각합니다. 구체적인 예는 불가능합니다 pythonic 스타일의 문제입니다. –

+0

대체 설치 옵션을 고려해 보셨습니까? https://docs.python.org/3/install/index.html#alternate-installation – creativeChips

답변

1

가상 환경 변수를 변경하고 당신이 이러한 목표를 달성하기 위해 ./venv/bin에있는 activate bash는 스크립트를 수정할 수 있습니다, 가상 환경의 출시 전에 수정해야합니다 이유입니다. 당신은 설정 파일에서 글로벌 경로를 추가하려는 경우 그래서, activate에서 다음 마지막 줄 수 :

source ./venv/bin/activate 
+0

는 문제를 해결하지 못합니다. –

+0

필자는 파이썬 애플리케이션을 가능한 한 파일 시스템 (설정 파일 포함)에 대해 순진하게두고 환경 변수를 대신 사용하는 것을 좋아합니다. 나는 가상 env를 사용하고'os.getenv' 메소드를 사용할 때 이것이 매우 깨끗한 패러다임임을 발견했다. 필자는 pyvenv로 만든 변수 'VIRTUAL_ENV'를 사용하여 프로젝트 디렉토리 내의 파일을 찾거나 내 프로젝트 디렉토리 외부에있는 config 파일의 위치를 ​​포함하는 추가 bash 변수 스크립트를 사용하여이 작업을 수행합니다. 더 적은 배쉬와 더 많은 파이썬을 사용하고 싶다면'os' 모듈을 사용하여 환경 변수를 설정하고 가져올 수 있습니다. –

+0

cfm은 설정 파일을 깨끗하고 중앙 집중식으로 배포 할 수 있습니다.특히 API 키를 동적/안전하게 이야기하기위한 암호화 된 데이터뱅크/볼트와 같은 유틸리티가 유용합니다. 네임 스페이스 충돌이 더 쉽게 발생할 수 있으므로 환경 변수가 위험 할 수 있습니다. IMHO. –

-1

가지고 당신 :

MY_GLOBAL_PATH=<program that looks into config file and returns path> 

그리고 가상 환경이 그것을 평소처럼 활성화 될 수 파이썬의 site-specific configuration 옵션을 사용해 보았습니까? 저에게 .pth 파일과 sitecustomize.py 파일이 도움이 될 것 같습니다.
참조 : Accepted answer on "Using .pth files".

"글로벌 경로"의 종류에 대한보다 구체적인 예가 없으면 수행 할 수있는 작업에 대한보다 자세한 정보를 제공하는 것이 어렵습니다. 이는 어느 정도 일반적인 스타일 질문이지만 말입니다.