python - 如何让 Plone 读取我的 pythonrc?

标签 python plone readline

我正在使用 collective.python扩建。

我有以下 .pythonrc(配置有 export PYTHONSTARTUP=~/.pythonrc):

import readline
import rlcompleter
readline.parse_and_bind('tab: complete')

当我在 shell 中运行 Python 时,制表符补全起作用了。当我在 Debug模式下运行 Plone 时,它没有。除非,我将 .pythonrc 的内容粘贴到 Plone 调试 Python 提示符中。我在这里缺少什么?

注意:只有当我通过 python bootstrap.py 安装 Plone 时,粘贴我的 .pythonrc 的内容才有效(即使用 collective.python< 引导 Plone 构建 Python)。如果我在 virtualenv 中安装 Plone,则没有任何效果。但至少在那种情况下,缺少的功能对我来说是有意义的(即 virtualenv 中可能缺少使制表符完成工作所需的某些东西。)

最佳答案

实例 Controller 使用两个命令行开关; -i 用于交互模式,-c 加载 Zope 配置并设置 app 变量。 -c 开关用于禁用 PYTHONSTARTUP 环境变量。

可以修改plone.recipe.zope2instance 包以运行脚本。

plone.recipe.zope2instance中,找到plone/recipe/zope2instance/ctl.py文件,修改do_debug()方法到:

def do_debug(self, arg):
    interactive_startup = ("import os;"
        "os.path.exists(os.environ.get('PYTHONSTARTUP', '')) "
        "and execfile(os.environ['PYTHONSTARTUP']); del os;"
        'import Zope2; app=Zope2.app()')
    cmdline = self.get_startup_cmd(self.options.python,
                                   interactive_startup,
                                   pyflags = '-i', )

事实上,我非常喜欢支持 PYTHONSTARTUP 的想法,所以我已经对配方进行了更改,请参阅 rev 536f8fc1c4 !

关于python - 如何让 Plone 读取我的 pythonrc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13839713/

相关文章:

readline - 在Android的QPython控制台中访问命令历史记录

c# - StreamReader.ReadLine 在使用\r 作为行终止符时无法通过 TCP 工作

java 文件 readline 返回 null

python - 如何使 Django 的 DateTimeField 可选?

python - 如何缩进python记录器打印的多行消息?

plone - xsl :attributes strips the "content"

workflow - Plone 工作流程的 chalice

python - 如果列的所有元素均为负数,则 pandas 切片列

python - Scrapy - 理解 CrawlSpider 和 LinkExtractor

plone - 链接到 "File type"灵巧内容类型