Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于扩展导入的Python pre interpeter_Python_Import_Expand_Precompile - Fatal编程技术网

用于扩展导入的Python pre interpeter

用于扩展导入的Python pre interpeter,python,import,expand,precompile,Python,Import,Expand,Precompile,可能重复: 是否有Python“预解释器”将包含导入的.py模块作为输入,并将其展开,以便它可以在命令行或Telnet会话上的解释器会话中内联运行?内置模块或已安装模块的导入可以保留,但我希望预解释器可以扩展我自己的模块。这样,我可以避免安装,同时仍然采用模块化编程技术。例如,如果我编写这两个模块: myprint.py: from math import pi def print_pi(): print "{0:6f}".format(pi) main.py: from mypri

可能重复:

是否有Python“预解释器”将包含导入的.py模块作为输入,并将其展开,以便它可以在命令行或Telnet会话上的解释器会话中内联运行?内置模块或已安装模块的导入可以保留,但我希望预解释器可以扩展我自己的模块。这样,我可以避免安装,同时仍然采用模块化编程技术。例如,如果我编写这两个模块:

myprint.py:

from math import pi
def print_pi():
    print "{0:6f}".format(pi)
main.py:

from myprint import print_pi
print_pi()
在main.py上运行预解释器,输出为:

from math import pi
def print_pi():
    print "{0:6f}".format(pi)

print_pi()
更新2012年10月10日22:36美国东部:


感谢所有回应的人!我的程序的运行时主机永久安装在机车上,我的程序将从机车上查询和监控该计算机和许多其他车载系统。您可以正确预测该计算环境是安全和任务关键的(因此需要我的团队的监控软件)。在这样的环境中安装软件需要特权,消耗资源,并对系统造成很小但实际的风险。因此,铁路公司实施了谨慎但耗时数周的检查,以检查将要安装的软件,包括变更控制委员会的签准。这是我们计划好的路线。但是,如果我们可以消除这种风险,从而减少了没有任何安装运行的形式,这可能是一个优势,至少要考虑。然而,我们不希望我们的体系结构受到非安装需求的限制,也就是说,我们不希望必须在一个模块中编写整个程序。从您的回答来看,我的想法似乎是不可能的。

您的示例假设Python导入类似于C宏。事实并非如此。Pythons导入功能更强大、更复杂。因此,不能通过复制几行代码来替换导入。答案是:不,没有这样的预处理器。但是,如果您更详细地指定了您真正想要解决的问题,我们可能会帮助您用python解决它。

您确实意识到,很多很多高级和不太高级的用例都会导致这种情况的出现?解压文件的安装过程真的那么难吗?您说的“避免安装”是什么意思?你想避免什么?正如阿希姆在他的回答中所说,扩展文件的概念“不适用于”Python导入。另一方面,Python可以解释zip文件(以及仅为zip的egg文件),其中包含一个正确的清单文件。也许把你所有的依赖关系放在一起就能解决你的问题?可能重复:谢谢阿希姆。不确定这篇文章是否会被阅读,因为这篇文章很快就因为重复而被关闭了。我面临的问题是,我的目标计算环境不仅受到公司政策的监管,还受到美国联邦法律的监管。安装软件和运行软件有单独的规定,安装的规定要严格得多。如果我可以通过SSH会话而不是安装来运行我的复杂应用程序,那么我必须遵守第二套规则。这不会被视为逃避责任。但是,不值得为我的整个应用程序编写代码。