我想从python创建一个单独的文件,仅依赖于python模块,例如numpy,sys等
执行此操作的手动方式是查看每个导入并复制 - >粘贴在该位置导入的任何内容并删除import
命令。有没有办法以编程方式或通过eclipse / pydev更快/更快地完成此操作?
我想也许pyc文件会这样做,但那不起作用。
谢谢
编辑:
File1.py
def foo(arg1, arg2):
return arg1 + arg2**arg1
File2.py
import sys
from File1 import foo
arg1 = sys.argv[1]
arg2 = sys.argv[2]
print foo(arg1, arg2)
NewSingleFile.py请注意,现在而不是from bla import bla
我有定义
import sys
def foo(arg1, arg2):
return arg1 + arg2**arg1
arg1 = sys.argv[1]
arg2 = sys.argv[2]
print foo(arg1, arg2)
答案 0 :(得分:0)
不幸的是 - 至少在一般情况下 - 这并不重要,因为许多模块(尤其是NumPy等)不是纯Python代码,所以内联它们将非常困难。
对于所有导入都是纯Python的特定情况,可以使用AST模块的某种组合(以解析代码)和" eval" (运行代码)。像这样:
import foo
将转变为:
foo_module = types.ModuleType("foo")
exec """# this is foo.py …""" in foo_module.__dict__
sys.modules["foo"] = foo_module
import foo