2013-10-14 5 views
2

피라미드 프로젝트 (pcreate -s starter projtest)를 만들고 기본 구조로 pserve가 예상대로 프로젝트를 실행합니다. 그러나 views.py 디렉토리와 templates 디렉토리의 패키지 디렉토리 (예 : "skimpygimpy")를 추가하면 pserve가 프로젝트 (invalid command name 'development.ini' 오류)를 시작할 수 없습니다. 그래서피라미드 프로젝트에 사용자 정의 패키지를 추가하려면 어떻게합니까?

projtest/ 
|-- CHANGES.txt 
|-- development.ini 
|-- MANIFEST.in 
|-- myproject 
| |-- __init__.py 
| |-- skimpygimpy 
| | |-- __init__.py 
| | |-- file.py 
| | |-- ... 
| |-- static 
| | |-- favicon.ico 
| | |-- logo.png 
| | |-- pylons.css 
| |-- templates 
| | |-- mytemplate.pt 
| |-- tests.py 
| |-- views.py 
|-- production.ini 
|-- README.txt 
|-- setup.cfg 
|-- setup.py 

, 어떻게 피라미드 프로젝트 내에서 사용자 정의 패키지를 추가하고이 오류 (잘못된 명령 이름 'development.ini') 내가 호출 할 때 pserve을 피할 수 있을까? 이 문제에 대한

더 많은 정보 :

mkdir pyramid 
cd pyramid/ 
virtualenv --no-site-packages env 
cd env/ 
bin/easy_install pyramid 
bin/pcreate -s starter projtest 
cd projtest 
cd projtest 
hg clone https://code.google.com/p/skimpygimpy/ 
cd skimpygimpy 
touch __init__.py 
cd .. 
cd .. 
../bin/python setup.py develop 
../bin/pserve development.ini 

그리고, 다음, 메시지 :

나는 이러한 명령을했다 invalid command name 'development.ini'

나는 "skimpygimpy"디렉토리, 다시 실행을 삭제하는 경우

../bin/python setup.py develop 
../bin/pserve development.ini 

괜찮습니다.

development.ini 파일 : http://codepad.org/VKPXm0jf

내가 무슨 일을하고 있는가? 어떤 아이디어?

+1

pserve를 부적절하게 호출하는 것처럼 들리지만, 표시하지 않았기 때문에 나는 알 수 없습니다. –

+0

안녕하세요 @MichaelMerickel! "skimpygimpy"디렉토리를 제거하면 pserve가 프로젝트를 시작합니다. 그러나이 디렉토리를 다시 추가하면 pserve가 오류를 표시합니다. 그냥. 피라미드 비계에 사용자 지정 디렉토리가 허용 되었습니까? development.ini 또는 setup.py에 구성 행이 필요합니까? –

+0

실행중인 정확한 pserve 명령 줄과 실행중인 폴더 경로는 무엇입니까? –

답변

1

그건 이상한 것이고, 지금은 대부분 비어 있습니다.하지만 나는 추측합니다. I 은 skimpygimpy의 전체 소스 트리를 프로젝트의 하위 패키지로 복제하므로 skimpygimpy setup.py가 실수로 서브 패키지에서 모든 코드를 가져 오는 config.scan()과 같은 것으로 실행되고 있다고 생각합니다. setup.py를 가져 오면 sys.args을 사용하여 매개 변수를 가져올 것이므로 나쁜 일이 발생할 것입니다. 그러면 python setup.py development.ini과 같은 작동을하는 이유가 설명됩니다.

종속성은 모두 동일한 virtualenv에 설치해야합니다. 인터프리터의 경로에는 항상 virtualenv에 포함되기 때문에 파일 시스템의 실제 위치는 관련성이 거의 없습니다.

결과적으로 제 3 자 프로젝트를 패키지 안에 넣지 말고 virtualenv에 설치해야하므로 skimpygimpy를 서브 패키지로 배치하지 않도록해야합니다. 원하는 경우 최상위 projtest 폴더에 복제하는 것이지만 projtest 패키지에는 복사하지 말아야합니다.

setup.py를 포함하지 않은 수동으로 만든 패키지에는 문제가 발생하지 않을 것이라고 확신합니다. 예를 들어 mkdir foo; touch foo/__init__.py이 문제를 나타내지 않아야합니다.

관련 문제