如何从依赖项创建单个python文件

如何从依赖项创建单个python文件,python,Python,我想从python创建一个单独的文件,该文件只依赖于python模块,如numpy、sys等 手动方法是查看每个导入并复制->粘贴在该位置导入的内容,然后删除import命令。有没有一种方法可以通过编程或通过eclipse/pydev更快地实现这一点 我想pyc文件可能会这样做,但那不起作用 多谢各位 编辑: File1.py def foo(arg1, arg2): return arg1 + arg2**arg1 File2.py import sys from File1 im

我想从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请注意,现在我有了定义,而不是来自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)

不幸的是,至少在一般情况下,这并不简单,因为许多模块(尤其是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

你所说的
查看每次导入并复制->粘贴在该位置导入的内容以及
删除导入命令是什么意思?
?我编辑这个问题是为了举例说明我的意思,希望它能澄清我的意思。等等,我想这是错误的方法。我试图用我编写的模块来实现这一点,而不是用python模块。ie
从修改后的import fooIwrote
变成
def fooIwrote():etc
我还收到一个错误,它说:
type对象“type”没有属性“ModuleType”
Err,对不起,应该是
types。ModuleType
同样,你想要的东西在理论上(某种程度上)是可能的,但是,如果要正确处理,那将是非常困难的……你这样做的动机是什么?我正在尝试创建一种并行编程类型的情况,在每台机器上(可能是AWS服务器),我只希望有一个需要运行的文件,而不是一个复杂的文件树。看到和