2012-03-20 2 views
1

entry_point dict을 사용하여 console.py 명령을 setup.py에 설치하고 있습니다. 이렇게하면 시스템의 일부 경로 (예 : debian의 루트가 /usr/local/bin)에 파이썬 파일이 생성되며 시스템에 따라 또는 virtualenvs를 사용하는 경우 변경할 수 있습니다. setup.pypython 콘솔 명령의 경로를 배포판에 'entry_points'로 설치하십시오.

위치 등등 --home, --user, --prefix, --install-scripts 등, setup.py 다양한 인자에 따라 달라질 수 있습니다
+0

당신이 묻고있는 것에 대해 더 분명하게 나타낼 수 있습니까? 나는 잘 형성된 질문을 여기에서 보지 못한다. – Paragon

+0

다른 답변도 수락 할 수 있습니까? Bye – jdi

+1

setup.py에서 console_command를 entry_point로 설명 할 수 있습니다 (http://packages.python.org/distribute/setuptools.html#automatic-script-creation).이 명령은 시스템의 일부 경로에 만들어집니다. ''/ usr/local/bin /' '이라고 가정하지 않고 그 경로를 검사 할 방법이 있는지를 아는 것은 virtualenv 안에 패키지를 설치하면 다른 경로에 있기 때문이다. –

답변

1

와 entry_points로

나는 설치 스크립트의 기본 경로가 필요합니다.

스크립트가 이미 존재하는 경우, 가장 좋은 방법은 그것을합니다 (which 명령 등) 실행 파일을 찾고, $PATH에 내용을 통해 검색하는 것입니다 찾을 수 있지만, 당신이

계신되지 않을 수도 있습니다

distutils.sysconfig 모듈이 더 도움이 될 수 있습니다.

>>> [(k, v) for (k, v) in distutils.sysconfig.get_config_vars().items() if "/tmp/so" in str(v)] 
[('prefix', '/private/tmp/so/blah'), ('exec_prefix', '/private/tmp/so/blah')] 
:

$ export WORKON_HOME='/tmp/so' 
$ mkvirtualenv blah 
$ python 
Python 2.7.2 
>>> import os 
>>> import distutils.sysconfig 
>>> pre = distutils.sysconfig.get_config_var("prefix") 
>>> bindir = os.path.join(pre, "bin") 
>>> print bindir 
/tmp/so/blah/bin 

요식 난 당신이 더 구체적인 위치를 찾을 필요가 있다면 pip install pyflakes

get_config_vars 딕셔너리가 유용 할 수 있습니다 실행하는 경우 예를 pyflakes에 대한 끝, 디렉토리입니다

sys 모듈을 통해 이러한 변수 중 일부에 편리하게 액세스 할 수 있습니다 (sys.prefixsys.execprefix

등).
+0

고마워요,이게 내 문제를 해결하고 질문에 편집 해 주셔서 고마워요. : D –

+0

필자는'sys.prefix'가 distutils.sysconfig.get_config_var ("prefix")없이 사용하는 데 도움이 될 것이라고 전했다. –

+0

@JorgeEduardoCardona 문제 없습니다! 나는 sys.prefix 등등에 대해서도 좋은 대답을 편집 해왔다. – dbr

관련 문제