2017-02-11 1 views
12

나는 내 자신의 패키지를 만들려고합니다. 패키지는 매우 간단합니다. 하나의 python 모듈과 하나의 bash 스크립트가 있습니다. 나는 그들 모두가 직접 실행될 수 있도록 /usr/local/bin 아래에 설치되기를 원합니다.pip가 실행 파일로 entry_points를 설치하지 않습니다.

from setuptools import setup 

setup(
    name='deploy', 
    . 
    . 
    . 
    install_requires=['pyyaml', 'cot', 'jsonschema'], 
    entry_points={ 
     'console_scripts': [ 
      'cloud_config = cloud_config:main', 
     ], 
    }, 
    scripts=['deploy.sh'], 
) 

다음은 출력에서 ​​pip install ...의 발췌입니다 :

가 여기 내 setup.py 파일의이와

running install_scripts 
    copying build/scripts-2.7/deploy.sh -> /usr/local/lib/python2.7.10/bin 
    changing mode of /usr/local/lib/python2.7.10/bin/deploy.sh to 755 
    Installing cloud_config script to /usr/local/lib/python2.7.10/bin 

, 나는 파이썬 직접 bash는 스크립트 중 하나를 호출 할 수 아니에요.

아이디어가 있으십니까?

편집 : 을 Ubuntu 16.04.1 기기에서 실행 중입니다. Ubuntu 14.04 컴퓨터에 동일한 패키지를 설치하려고했는데 동작이 예상대로입니다. cloud_config.pydeploy.sh은 모두 /usr/local/bin에 설치되며 시스템의 어느 곳에서든지 둘 다 호출 할 수 있습니다.

+2

우분투 크게 pip; 나는 그들이 여기에서도 행동을 바꿨다는 것에 대해 놀라지 않습니다. –

+0

그건 말도 안돼 @MartijnPieters. 모든 플랫폼에서 올바르게 설치되는 패키지를 만드는 방법은 무엇입니까? – ronakg

+0

방금'setup.py'를 기반으로 패키지를 만들고 Ubuntu 16.04 Vagrant 상자를 정리하기 위해 배포했습니다. 모든 것이 잘 작동합니다.추가 정보를 제공하면 문제를 재현하는 데 도움이 될 수 있습니다. 어쩌면 버전이있는 것일까 요? 어떤 버전의 setuptools를 사용하여 어셈블리합니까? 대상 컴퓨터의 pip와 setuptools는 무엇입니까? – Timur

답변

1

: 기본 파이썬 경로를 사용합니다 (PIP되지 않음)에 설치해야합니다

python setup.py install 

작동하도록했습니다. apt가 설치 한 pip 패키지를 제거해야했습니다. https://pip.pypa.io/en/stable/installing/ -

sudo apt remove python-pip 

그리고 다시 자신의 웹 사이트의 지시에 따라 주사위를 설치합니다.

wget https://bootstrap.pypa.io/get-pip.py 
sudo python get-pip.py 

ubuntu의 기본 저장소에서 pip와 같은 모양은 pypi에서 배포 한 것과 같습니다.

0

시도 :

pip install --install-option="--prefix=$PREFIX_PATH" package_name 

예를 들어,

pip install --install-option="--prefix=/usr/local/bin" pyFooBar 
+0

'entry_points -> console_scripts '에있는 항목이'PATH'에 설치되어 있지 않아서 어디서든지 호출 할 수 있습니까? – ronakg

+0

python 패키징에 대한이 문서에 따르면 - http://python-packaging.readthedocs.io/en/latest/command-line-scripts.html – ronakg

2

내가 생각할 수있는 두 가지 옵션은 첫째, 핍이 올바른 위치를 가리키고 있는지 확인합니다. 그래서 시도 :

which python 

광산은 말한다 :

/usr/bin/python 

당신은 다음 PATH가 올바르게 설정되어 있는지 확인 다를 수 에 따라 경로를 변경, 그래서 :

export PATH=/usr/bin/python:${PATH} 

다시 설치 pip하고 다시 시도하십시오. 그 실패 는 해결이 인스턴스에서 주사위를 사용하지 할 수 있습니다 : 마지막으로 나는

/usr/local/bin 
+0

광산에서는 또한/usr/bin/python을 말합니다. 무슨 일이 있었는지 아래의 내 대답을 참조하십시오. 나는 아직도 기본 pip가 작동하지 않는 이유를 모른다. – ronakg

관련 문제