如何创建自定义python解释器?即已包含某些模块?

时间:2011-01-03 00:36:06

标签: python

如果您使用过Ruby on Rails,我正在考虑用户输入的功能

  

'rails console'

立即获得带有rails的Ruby控制台,并且当前应用已经加载 我想为我正在研究的python程序制作类似的东西,有没有人知道如何键入say,

  

'python myPythonConsole.py'

并打开一个常规的python解释器,但是我的程序及其所有依赖项已加载?

4 个答案:

答案 0 :(得分:6)

如果我理解正确,那么您可能需要python -i myPythonConsole.py。当脚本完成时,它会为您提供一个控制台,因此您必须在不同的线程中运行您的应用程序。

要在脚本中创建控制台,您可以使用code module

答案 1 :(得分:2)

如果您正在使用IPython(如果您不是,那么它是一个具有TAB完成和许多快捷方式的令人敬畏的python shell),可以set up profiles,它们基本上是命名配置。

每个配置都可以在启动时导入模块(并执行其他操作)。

答案 2 :(得分:0)

Django使用“shell”命令执行此操作:

./manage.py shell

将打开一个加载了Django设置的Python shell,这样您就可以交互式地导入项目代码。

来源:http://code.djangoproject.com/browser/django/trunk/django/core/management/commands/shell.py

答案 3 :(得分:0)

真正的答案是使用PYTHONSTARTUP环境变量。请参阅教程部分The interactive startup file

在文件interpreter.py中进行自定义导入,并进行配置

PYTHONSTARTUP=/path/to/interpreter.py

下次启动Python时,自定义代码将在您放入REPL shell之前执行。

这是我的自定义内容:

import os
import sys
from pathlib import Path
from pprint import pprint
pp = pprint
P = Path

version = ".".join(str(number) for number in sys.version_info[0:3])
print(f"\nCustomized Python interpreter v{version} running from {sys.prefix}")