2013-10-21 8 views
1

앱을 개발하고 apps 로컬 git 복제본 디렉토리에서 작업하는 동안 모듈의 개발 버전 (git clone 디렉토리 내)에 대한 링크를 설정했습니다. 나는 개발 디어 (Dir) 내에서 앱을 실행하면 모듈의 개발 버전 (일반적으로 동시에 개발 중임)을 호출 할 수 있도록이 작업을 수행합니다. mymodule.py에 .gitignore를 추가하면됩니다.Python 개발 모듈 경로

그러나 나는 이것을 좋아하지 않습니다. 그래서 나는 mymodule.py가 출시 된 버전이 설치된 python 모듈 경로가 아닌 개발 경로에서 풀 (pull)하는 방법을 찾아 내려고 노력했습니다. 이 같은 것을하거나 제안이있는 사람.

dev/myapp/myapp -> import mymodule 
    -from here- 
dev/mymodule/mymodule.py 
    -not here- 
/usr/lib/python2.7/site-packages/mymodule.py 

답변

2

@forivall이 말한 것에 후속하여, 나는 virtualenv이 문제를 해결할 것이라고 믿습니다.

개발 환경을 만들고 그 안에 모든 종속성을 설치할 수 있습니다. 이렇게하면 수동으로 파이썬 경로를 조작 할 필요가 없게됩니다.

  1. virtualenv /path/to/env/는 - 그 후 새로운 ENV
  2. 을 만들 것입니다 당신은 지금 당신은 별도의 깨끗한 파이썬 환경을 사용하여 ENV source /path/to/env/bin/activate

에게 '활성화'할 필요가있다. 당신은 당신의 의존성을 체크 아웃 할 수 있습니다. 또는 pip을 git에서 직접 설치하여 설치할 수 있습니다! settuptools를 사용하는 경우 seems to address your exact problem 인 개발 달걀을 만들 수 있습니다.

+0

이렇게하면 virtualenv가 myvs를 ./myvs 디렉토리에 설치합니다. 시원한 출발점. 하지만이 virtualenv의 PATH에 dir을 추가하는 방법이 있습니까? –

+0

'sys.path.append'를 사용하면 시스템 파이썬 설치가 아닌 활성화 된 virtualenv의 경로에 추가되어야합니다. – dm03514

+0

내가 말하는 @forivall 와우처럼 나는 virtualenv를 좋아하고이 앱 개발에 지금 사용하고 있습니다. 그러나 sys.path.append는 나를 생각하게 만들었고 import mymode 호출에 앞서 os.path.basename (os.getcwd()) == PrgName : sys.path.insert (0, DevPathToMyModule) –

1

는 서로 다른 위치를 체크하는 순서를 지정합니다 PYTHONPATH 환경 변수를 설정할 수 있습니다. 그냥 먼저 개발 버전을 넣어.

+0

그래서 개발 중에 PYTHONPATH를 조정하면됩니까? 이 앱이 개발 디렉토리 외부에서 실행될 경우 모듈의 설치된 버전을 실행하려면 전역 PYTHONPATH가되고 싶지 않습니다. –

+0

'PYTHONPATH = BLAH python somefile.py'과 동시에 할 수 있습니다. 나는 보통 내 makefile을 가지고 나를 위해 끝내고 그 다음에 "dev"또는 뭔가를 만들어서 dev 환경을 시작한다. 'virtualenv'도 좋은 대답처럼 들립니다. – Murph

2

그냥 virtualenv을 사용하십시오. 구글 그것.

너무 많은 작업이있는 경우 virtualenvwrapper을 사용하면 더 간단하게 virtualenv을 관리 할 수 ​​있습니다.

+0

https://pypi.python.org/pypi/virtualenv를 방금 읽었는데 어떻게 작동하는지 잘 모르겠습니다. 모범이 있습니까? –

+1

이걸 발견 했으니까요. http://iamzed.com/2009/05/07/a-primer-on-virtualenv/ –