我试图了解什么是粘贴脚本和贴纸.该网站远非清晰.我使用贴纸来为项目生成预先制作的布局,但我没有全面了解.
据我了解,并从维基百科条目,它说它是一个框架的Web框架,但这似乎是还原性的.paster create似乎能够为setuptools/distutils启用的包创建预制布局.
它试图解决的问题(或一组问题)是什么?
我正在安装一个应用程序,并已安装python和easy_install.我现在有两个步骤要完成:
5. Make a config file as follows::
paster make-config openbiblio development.ini
6. Tweak the config file as appropriate and then setup the application::
paster setup-app config.ini
Run Code Online (Sandbox Code Playgroud)
我已经阅读了Stackoverflow的答案并尝试了网络但无法找到安装说明.
我想要一个相当于Django One True Way设置布局:共享基本文件,然后是生产文件和开发文件,每个文件都导入共享库.
Pyramid的配置是否可以实现?
我正在尝试在生产服务器上设置Mediacore(这是一个Pylons应用程序).文档建议将apache mod_fastcgi或mod_wsgi作为webserver,但我试图不惜任何代价避免使用apache,因为它是RAM-monger.另一方面,当我使用贴纸时,mediacore工作得很好,所以我想知道只是忽略apache并使用贴纸作为我的生产网络服务器的优缺点是什么?
几乎就是标题所说的,我希望能够连接到在paster或uwsgi下运行的python进程并利用pdb功能.
所以我对Pylons中的文件上传有一个相当棘手的问题,我希望有人可以帮助我.最初我在这里发布了这个问题,认为这是Pylons的一个问题,但我已经得出结论,问题是由服务器引起的,即粘贴,我已经确切地追踪了问题发生的地方,但我不确定如何解决它.行为如下.我有一个Pylons网络应用程序,我通过贴纸服务.应用程序的一部分允许用户将文件上传到系统,有时这些文件可能相当大(> 50mb).在上传过程中,服务器偶尔会重置连接(例如,在Chrome中,错误显示为"错误101(net :: ERR_CONNECTION_RESET):连接已重置.".)这并不总是发生,只有约50%的时间更大的文件.
在这些情况下,服务器永远不会将POST交给应用程序级别.没有抛出异常(至少,我能找到).我已将问题缩小到cascade.py(特别是从httpserver.py调用的wsgi_application方法).从后者:
result = self.server.wsgi_application(self.wsgi_environ,self.wsgi_start_response)
在cascade.py 的调用函数中,该文件似乎被写入临时文件.相关循环开始于:
而copy_len> 0:
然后它将块一个一个地写入打开的文件.这些写入都不会引发异常.但是,服务器通常只是在这些写入期间"消失",似乎是随机的(时间似乎与此无关).因此,如果我打印出正在递减的copy_len大小,我会看到它减少到一个点,然后服务器突然发送'连接重置'(或者至少客户认为它)和方法似乎已退出(copy_len不再打印,好像循环已退出,但不是0).
我完全难倒,因为1)这只是偶尔发生,2)我似乎无法追查实际的错误/异常 - 它只是......死了.
如果重要的话,我正在运行paste 1.7.3,Python 2.7和Fedora OS.有没有人对可能发生的事情有任何了解,以及我如何能够解决这个问题?非常感谢您的帮助.
我创建了一个自定义paster命令,如http://pythonpaste.org/script/developer.html#what-do-commands-look-like中所述.在我的setup.py中,我已经定义了这样的入口点:
entry_points={
'paste.global_paster_command' : [
'xxx_new = xxxconf.main:NewXxx'
]
}
Run Code Online (Sandbox Code Playgroud)
我在激活的virtualenv里面,并通过安装我的包
python setup.py develop
Run Code Online (Sandbox Code Playgroud)
如果我paster在我的包文件夹中运行,我会看到我的自定义命令,我可以通过它运行它paster xxx ....但是,如果我离开我的包文件夹paster不再显示我的命令.我查了一下which paster,这是我的virtualenv的版本.我也启动了一个python解释器并导入xxxconf,它工作正常.
当我在我的包文件夹之外时,我不知道为什么我的全局命令无法识别!?
是否可以运行"paster shell blah.ini"(或其变体)并自动加载某些库?
我讨厌总是输入"来自foo.bar import mystuff"作为每个贴纸shell中的第一个命令,并且希望计算机能够为我完成.
我有一个标准的磨机Pylons金字塔应用程序,它使用SQLAlchemy作为其数据库持久性.
我已经设置了一个SQLAlchemy-migrate repo并使其正常运行,但我真的希望能够使用paster升级和降级数据库,或者至少某种方式让用户(安装鸡蛋后)升级/降级数据库到所需的版本.
我现在已将它内置到我的应用程序中,因此在应用程序启动时它会进行版本升级,但我宁愿选择用户明确必须升级数据库的内容,以便他们确切知道发生了什么,并且知道事先做备份.
我该怎么办呢?如何添加粘贴命令?
用户设置应用程序的方式是:
paste make-config appname production.ini
paste setup-app production.ini#appname
Run Code Online (Sandbox Code Playgroud)
要进行第一次设置,要进行数据库升级或升级,我希望:
paste upgrade-app production.ini#appname
Run Code Online (Sandbox Code Playgroud)
或类似的规定.
这样的设置不可能吗?
production.ini文件:
[app:main]
use = egg:my_project
... various settings ...
[server:main]
...
Run Code Online (Sandbox Code Playgroud)
development.ini文件:
[app:main]
use = config:production.ini#main
... override some production settings ...
Run Code Online (Sandbox Code Playgroud)
然后,我尝试启动开发服务器并获得:
在config development.ini中找不到“主要”部分(以“服务器”为前缀)
我想将配置文件链接在一起,如下所示:
production.ini-> development.ini-> local.ini-> test.ini
看来这应该是可能的,但是我还没弄清楚魔术。
paster ×10
python ×9
pylons ×3
pyramid ×3
paste ×2
apache ×1
debugging ×1
ini ×1
python-paste ×1
setuptools ×1
sqlalchemy ×1
uwsgi ×1