我创建了一个金字塔项目(使用pcreate -s starter projtest
),并使用默认结构,pserve按预期运行项目。
但是,当我在同一级别的views.py
和{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
那么,如何在金字塔项目中添加自定义包并避免此错误(无效命令名'开发.ini'当我打电话给pserve时?在
有关问题的更多信息:
我做了这些命令:
^{pr2}$然后,还有一个信息:
invalid command name 'development.ini'
如果我删除“skippygimpy”目录并重新运行
../bin/python setup.py develop
../bin/pserve development.ini
没关系。在
在开发.ini文件: http://codepad.org/VKPXm0jf
我做错什么了?有什么想法吗?在
这很奇怪,我现在基本上是空白,但我有一个猜测。我认为既然你要克隆skipygimpy的整个源代码树作为项目中的一个子包,skimpygimpy设置.py不经意间被一个
config.scan()
之类的东西执行,它从子包中导入所有代码。当设置.py如果导入,则会发生不好的事情,因为它将使用sys.args
来获取参数,这将解释为什么它的行为类似于您调用的python setup.py development.ini
。在依赖关系应该通过将它们全部安装到同一个virtualenv中来找到,当执行此操作时,它们在文件系统中的实际位置几乎不相关,因为解释器的路径总是包含virtualenv中的内容。在
因此,第三方项目不应该放在您的包中,而应该安装到virtualenv中,所以我认为您应该避免将skippygimpy作为子包。这意味着如果您愿意,可以在顶层projtest文件夹中克隆它,而不是在projtest包中。在
我敢肯定,如果手动创建的包中没有包含设置.py. 例如,
mkdir foo; touch foo/__init__.py
不应该显示您的问题。在相关问题 更多 >
编程相关推荐