是否可以启动带有预加载模块的Paster shell?
有没有办法让“paster shell blah.ini”这个命令(或者类似的命令)自动加载一些特定的库呢?
我真的不喜欢每次在paster shell里都要手动输入“from foo.bar import mystuff”作为第一个命令,我希望电脑能帮我自动完成这个操作。
2 个回答
如果你把环境变量 PYTHONSTARTUP 设置成一个文件的名字,那么在打开交互式提示符的时候,它会自动执行这个文件。
我对 paster shell 不是很了解,但我猜它的工作方式可能差不多。
另外,你可以看看 iPython,它有更强大的功能(特别是当你安装了 readline 库时)。比如说,%run 命令可以让你在当前的命名空间中运行一个脚本,或者你可以使用历史记录补全功能。
编辑:
好吧,经过进一步了解,我相当确定 paster shell 只是做了一些有用的导入,而且可以用一个简单的脚本和 iPython 来轻松实现,然后用 %run myscript.py
来运行。
编辑:
看了源代码后,我发现这其实很难做到(我之前对默认导入的理解是错的。它还会解析你的配置文件),不过如果你同时安装了 Pylons 和 iPython,那么 paster shell 应该会自动使用 iPython。请确认这两个都安装正确,并且再确认一下 paster shell 是否已经在使用 iPython(它可能看起来像普通的 Python 提示符)。
你可以尝试创建一个叫做 sitecustomize.py 的脚本。如果你把这个脚本放在和你的 paster shell 在同一个文件夹里,Python 解释器在启动时就会自动加载它。
让我再解释一下,sitecustomize.py 这个文件如果被找到的话,总是会在解释器启动时被加载。所以如果你把它放在一个合适的位置,最好是那种只有在 paster shell 启动时才会找到的地方,那么你就可以在里面添加你需要的导入语句,这样它们就会准备好使用了。
这可能是你最好的选择。如果 paster shell 是一个打包好的应用(像 py2exe 这样的),它仍然应该可以正常工作。
另外,你可以参考以下链接:
http://www.rexx.com/~dkuhlman/pylons_quick_site.html#using-an-ipython-embedded-shell http://pylonshq.com/project/pylonshq/ticket/428