2011-12-20 3 views
12

저는 pip를 통해 설치 가능한 Python 소스 패키지를 만드는 방법을 알아 내려고하고 있습니다. 나는 http://packages.python.org/an_example_pypi_project/setuptools.html 에 설명 된 setup.py 파일과 지정된 디렉토리에있는 많은 수의 간단한 테스트 파일로 테스트 프로젝트를 만들려고 시도했다. Python 패키지 소스 설치하기 tarball with pip

python setup.py sdistdist/an_example_pypi_project-0.0.4.tar.gz라는 이름의 프로젝트의 소스 타르볼을 만든 후, 나는 VIRTUALENV 환경에 설치가 ~/TEST/bin/pip install dist/an_example_pypi_project-0.0.4.tar.gz~/TEST라고했습니다.
$ ~/TEST/bin/easy_install dist/an_example_pypi_project-0.0.4.tar.gz 
Processing an_example_pypi_project-0.0.4.tar.gz 
Running an_example_pypi_project-0.0.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-tfXxeW/an_example_pypi_project-0.0.4/egg-dist-tmp-N2QY_N 
warning: build_py: byte-compiling is disabled, skipping. 

warning: install_lib: byte-compiling is disabled, skipping. 

zip_safe flag not set; analyzing archive contents... 
Adding an-example-pypi-project 0.0.4 to easy-install.pth file 

Installed /home/lebedov/TEST/lib/python2.7/site-packages/an_example_pypi_project-0.0.4-py2.7.egg 
Processing dependencies for an-example-pypi-project==0.0.4 
Finished processing dependencies for an-example-pypi-project==0.0.4 
$ find ~/TEST/ -name "an_example*"         
/home/lebedov/TEST/lib/python2.7/site-packages/an_example_pypi_project-0.0.4-py2.7.egg 

내가가 무시 건가요 : 나는 easy_install을 사용하여 타르에서 설치 할 수 있었다

$ ~/TEST/bin/pip install dist/an_example_pypi_project-0.0.4.tar.gz 
Unpacking ./dist/an_example_pypi_project-0.0.4.tar.gz 
    Running setup.py egg_info for package from file:///home/lebedov/an_example_pypi_project/dist/an_example_pypi_project-0.0.4.tar.gz 

Cleaning up... 
$ find ~/TEST -name "an_example*" 
$ 

참고 : PIP 어떤 오류가 발생하지 않았지만,이 패키지를 설치하는 것 같지 않았어요 pip에서 설치할 수 있도록 패키지에 뭔가를 구성 하시겠습니까? 파이썬 2.7.2를 사용하고, 0.6.21, virtualenv 1.7, pip 1.0.2를 배포하고 있습니다.

+1

현재 디렉터리가 프로젝트 원본을 포함하는 동안 pip를 호출 할 때만 문제가 발생하는 것으로 보입니다. 소스 배포판을 만든 후에 만들어진 .egg-info 하위 디렉토리의 존재로 인해 pip가 혼란스러워 보입니다. 이것이 버그인지 잘 모르겠다 - 나는 pip 개발자에게 물어볼 것이다. – lebedov

+2

나중에 참조 할 수 있습니다. https://github.com/pypa/pip/issues/414 – lebedov

+0

이것은 내 프로젝트에서 작동하며 .egg 정보도 가지고 있습니다. 'tree'를 사용하여 디렉토리를 살펴 보았습니까? –

답변

4

github에 게시 한 버그 보고서에는 훌륭한 재현 지침이 있습니다. (티켓에 댓글을 달고 여기에서 응답을 복사했습니다.)

나열된 패키지의 정확한 버전을 사용하여 편지에 대한 지침을 따르지 만 여전히이 문제를 재현 할 수 없습니다.

여기 pip install --verbose에서 내 출력은 문제의 명령입니다 :

Unpacking ./dist/anyjson-0.3.1.tar.gz 
    Running setup.py egg_info for package from file:///home/david/projects/anyjson-0.3.1/dist/anyjson-0.3.1.tar.gz 
    running egg_info 
    creating pip-egg-info/anyjson.egg-info 
    writing pip-egg-info/anyjson.egg-info/PKG-INFO 
    writing top-level names to pip-egg-info/anyjson.egg-info/top_level.txt 
    writing dependency_links to pip-egg-info/anyjson.egg-info/dependency_links.txt 
    writing manifest file 'pip-egg-info/anyjson.egg-info/SOURCES.txt' 
    warning: manifest_maker: standard file '-c' not found 

    reading manifest file 'pip-egg-info/anyjson.egg-info/SOURCES.txt' 
    reading manifest template 'MANIFEST.in' 
    writing manifest file 'pip-egg-info/anyjson.egg-info/SOURCES.txt' 
Installing collected packages: anyjson 
    Running setup.py install for anyjson 
    running install 
    running build 
    running build_py 
    creating build 
    creating build/lib.linux-i686-2.7 
    creating build/lib.linux-i686-2.7/anyjson 
    copying anyjson/__init__.py -> build/lib.linux-i686-2.7/anyjson 
    running install_lib 
    creating /tmp/TEST/lib/python2.7/site-packages/anyjson 
    copying build/lib.linux-i686-2.7/anyjson/__init__.py -> /tmp/TEST/lib/python2.7/site-packages/anyjson 
    byte-compiling /tmp/TEST/lib/python2.7/site-packages/anyjson/__init__.py to __init__.pyc 
    running install_egg_info 
    running egg_info 
    writing anyjson.egg-info/PKG-INFO 
    writing top-level names to anyjson.egg-info/top_level.txt 
    writing dependency_links to anyjson.egg-info/dependency_links.txt 
    warning: manifest_maker: standard file '-c' not found 

    reading manifest file 'anyjson.egg-info/SOURCES.txt' 
    reading manifest template 'MANIFEST.in' 
    writing manifest file 'anyjson.egg-info/SOURCES.txt' 
    Copying anyjson.egg-info to /tmp/TEST/lib/python2.7/site-packages/anyjson-0.3.1-py2.7.egg-info 
    running install_scripts 
    writing list of installed files to '/tmp/pip-gvBT02-record/install-record.txt' 
Successfully installed anyjson 
Cleaning up... 

어쩌면 당신은 명령을 설치하려면 PIP에 --verbose를 추가하고 비교를 위해 출력을 게시 할 수 있을까?

+1

에 비슷한 문제가있었습니다. 나는 나의 .bashrc 파일에서 PYTHONDONTWRITEBYTECODE를 주석 처리하고, 로그 아웃하고, 로그인하고, 나의 가상 환경을 시작했으며, pip install이 잘 작동했다. – highpost