2013-10-14 76 views
2

我創建了一個金字塔項目(使用pcreate -s starter projtest)並使用默認結構,pserve按預期運行項目。 但是,當我在views.pytemplates目錄的同一級別添加軟件包目錄(例如,稱爲「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

這是一個奇怪的,我現在主要是畫空白,但我有一個猜測。我認爲,因爲你是克隆skimpygimpy的整個源代碼樹作爲你的項目中的一個子包,skimpygimpy setup.py被無意中執行的東西,如config.scan(),它從子包中導入所有的代碼。當setup.py被導入時,會發生不好的事情,因爲它會使用sys.args來獲取參數,這可以解釋爲什麼它的行爲如同你所稱的python setup.py development.ini

依賴應該讓他們都安裝到同一個virtualenv中可以發現,當這樣做是因爲解釋程序的路徑總是包含在virtualenv中的東西在文件系統中的實際位置是幾乎沒有相關性。

因此,第三方項目不應該放在你的軟件包中,而應該安裝在virtualenv中,所以我認爲你應該避免將skimpygimpy作爲一個子軟件包。這意味着將其克隆到頂級projtest文件夾(如果您喜歡),但不在projtest包內。

我很確定你的問題不會發生在任何手動創建的軟件包中,不包括setup.py。例如mkdir foo; touch foo/__init__.py不應該表現出您的問題。

相關問題