如何从依赖项创建单个python文件
我想从python创建一个单独的文件,该文件只依赖于python模块,如numpy、sys等 手动方法是查看每个导入并复制->粘贴在该位置导入的内容,然后删除如何从依赖项创建单个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
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服务器),我只希望有一个需要运行的文件,而不是一个复杂的文件树。看到和