如何在金字塔项目中添加自定义包?

2024-09-30 20:32:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个金字塔项目(使用pcreate -s starter projtest),并使用默认结构,pserve按预期运行项目。 但是,当我在同一级别的views.py和{}目录中添加包目录(例如,称为“skipygimpy”)时,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

那么,如何在金字塔项目中添加自定义包并避免此错误(无效命令名'开发.ini'当我打电话给pserve时?在

有关问题的更多信息:

我做了这些命令:

^{pr2}$

然后,还有一个信息: invalid command name 'development.ini'

如果我删除“skippygimpy”目录并重新运行

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

没关系。在

在开发.ini文件: http://codepad.org/VKPXm0jf

我做错什么了?有什么想法吗?在


Tags: 项目namepy目录txtinit错误setup
1条回答
网友
1楼 · 发布于 2024-09-30 20:32:23

这很奇怪,我现在基本上是空白,但我有一个猜测。我认为既然你要克隆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不应该显示您的问题。在

相关问题 更多 >