2013-06-05 3 views
1

저는 첫 번째 패키지를 만들었습니다. 새로 만든 virtualenv에 pip를 설치하려고하면 libs를 가져올 수 없다는 오류가 발생하지만 install_requires 필드에 setup.py에 추가됩니다. vierualenv 외부에서 해보니 모두 괜찮습니다. 내 setup.py은 여기에 있습니다 :Python 패키지가 내 요구 사항을 무시하는 것 같습니다

mkvirtualenv something -p /usr/bin/python3 
workon something 
pip install pypepa 

: https://github.com/tdi/pyPEPA/blob/dev/setup.py

오류를 재현하려면.

Downloading/unpacking pypepa 
Running setup.py egg_info for package pypepa 
Traceback (most recent call last): 
    File "<string>", line 16, in <module> 
    File "/home/tdi/.virtualenvs/koza/build/pypepa/setup.py", line 3, in <module> 
    import pypepa 
    File "./pypepa/__init__.py", line 6, in <module> 
    from pypepa.pepa_model import PEPAModel 
    File "./pypepa/pepa_model.py", line 6, in <module> 
    from pypepa.parsing.parser import PEPAParser 
    File "./pypepa/parsing/parser.py", line 5, in <module> 
    from pyparsing import Word, Literal, alphas, alphanums, nums, Combine, Optional, ZeroOrMore, Forward, restOfLine 
ImportError: No module named 'pyparsing' 
Complete output from command python setup.py egg_info: 
Traceback (most recent call last): 
File "<string>", line 16, in <module> 
File "/home/tdi/.virtualenvs/koza/build/pypepa/setup.py", line 3, in <module> 
import pypepa 
File "./pypepa/__init__.py", line 6, in <module> 
from pypepa.pepa_model import PEPAModel 
File "./pypepa/pepa_model.py", line 6, in <module> 
from pypepa.parsing.parser import PEPAParser 
File "./pypepa/parsing/parser.py", line 5, in <module> 
    from pyparsing import Word, Literal, alphas, alphanums, nums, Combine, Optional, ZeroOrMore, Forward, restOfLine 
ImportError: No module named 'pyparsing' 
---------------------------------------- 
Command python setup.py egg_info failed with error code 1 in  /home/tdi/.virtualenvs/koza/build/pypepa 
Storing complete log in /home/tdi/.pip/pip.log 
+0

왜'require'가 아닌'install_requires'를 사용하고 있습니까? – brice

+0

@brice 괜찮습니다. 조금 혼란 스럽습니다. – Darek

답변

2

설치 스크립트는 pypesing을 가져 오는 pypepa.pepa_model을 가져 오는 pypepa를 가져 오지만 pyparsing은 아직 설치되지 않았습니다. 종속성이 무엇인지 알기 위해 설치 스크립트를 실행하지도 않았습니다. 해결 방법은 pypepa와 setup.py에서 버전 번호를 반복하여 가져 오기를 제거하거나 __init__.py에서 PEPAModel을 가져 오지 않는 것입니다.

0

는 Python3가의 distutils를 사용하고 setup()requires 키워드 인수를 취할 것입니다. the docs에서 : 당신의 requires

Dependencies on other Python modules and packages can be specified by supplying the requires keyword argument to setup().

변경 install_requiressetup.py 스크립트.

+0

은 도구로 구현되지 않았으므로 사용하면 안됩니다. –

+0

@ ÉricAraujo 그럼 어떻게해야합니까? – Darek

+2

공식적이지 않지만 많은 도구 또는 pip 요구 사항 파일 또는 빌드 아웃에서 지원되는 install_requires를 사용할 수 있습니다. –