문제

나는 최근 Python에서 개발하는 동안 Virtualenv를 사용하고 있습니다. 나는-no-site-packages 옵션을 사용하여 분리 된 개발 환경에 대한 아이디어를 좋아하지만 pygtk 앱을 개발하는 동안이 작업을 수행하는 것은 약간 까다로울 수 있습니다. Pygtk 모듈은 기본적으로 Ubuntu에 설치되며 시스템의 다른 곳에 위치한 특정 모듈을 인식하는 virtualenv (-noity-site-packages 포함)를 만들고 싶습니다.

이것을하는 가장 좋은 방법은 무엇입니까? 아니면 그냥 빨아 내고--사이트 패키지 옵션을 떨어 뜨려야합니까?

도움이 되었습니까?

해결책

$ virtualenv --no-site-packages --python=/usr/bin/python2.6 myvirtualenv
$ cd myvirtualenv
$ source bin/activate
$ cd lib/python2.6/
$ ln -s /usr/lib/pymodules/python2.6/gtk-2.0/ 
$ ln -s /usr/lib/pymodules/python2.6/pygtk.pth 
$ ln -s /usr/lib/pymodules/python2.6/pygtk.py 
$ ln -s /usr/lib/pymodules/python2.6/cairo/
$ python
>>> import pygtk
>>> import gtk

다른 팁

한 가지 방법은 sys.path를 사용하여 코드에 경로를 추가하는 것입니다.

import sys

sys.path.append(somepath)

또 다른 방법은 sys.path에 추가하는 것 외에도 .pth 파일을 처리하는 사이트를 사용하는 것입니다.

import site

site.addsitedir(sitedir, known_paths=None)

https://docs.python.org/library/site.html

그러나 당신은 아마도 이것을 모든 관련 코드에 추가하고 싶지 않을 것입니다.

나는 sitecustomize.py에 대한 언급을 보았지만 이와 같은 것을 수행하는 데 사용되는 것을 보았지만 일부 테스트 후에는 예상대로 작동 할 수 없었습니다.

여기에서는 SiteCustomize의 자동 상영이 2.5로 끝났다고 언급합니다. (Path 중 하나를 추가하여 파일에 위의 메소드를 추가하고 프로그램이 실행되는 디렉토리에 삭제하십시오.) 2.5 이상의 사용자를위한 게시물에 대한 방법이 언급되어 있습니다.

http://code.activestate.com/recipes/552729/

이 상황에서 Symlinks 또는 특정 파일 (패키지, 모듈, 확장)을 복사하는 것이 실제로 잘 작동합니다.

이를 통해 프로그램은 개발 환경에 맞게 응용 프로그램을 변경하는 대신 대상 환경에서 실행되는 것을 모방 할 수 있습니다.

Appengine과 같은 거래.

PostMkVirtualEnv 후크 스크립트를 확인하십시오.

https://stackoverflow.com/a/9716100/60247

이 경우 새 VirtualEnV가 생성 된 후 PYQT 및 SIP를 가져 오기 위해 사용하고 있지만 LIBS에 필요한 패키지를 추가 할 수 있습니다.

그리고 환상적이기 때문에 그 대본을 투표하십시오 :)

VirtualEnV에서 관련 시스템의 Python GTK-2.0에 대한 링크를 포함하려면 PIP를 사용하여 설치할 수 있습니다. Ruamel.venvgtk:

PIP 설치 Ruamel.venvgtk 가져 오기는 없습니다. 링크는 설치 중에 설정됩니다.

사용하는 경우 특히 편리합니다 tox,이 경우 의존성 만 포함하면됩니다 (Tox의 경우) :

deps:
    pytest
    ruamel.venvgtk

새로 설정된 Python2.7 환경에는 테스트가 실행되기 전에 관련 링크가 포함됩니다.

링크 설정 방법에 대한 자세한 정보는 이 답변

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top