用于合并导入项的Python工具

nar*_*nie 3 python import parsing

python中是否有一个工具可以重写一些导入东西的代码,以便它不再需要导入任何东西?

拿一个名为box.py的框的库

def box(text='Hello, World!')
    draw the box magic
    return
Run Code Online (Sandbox Code Playgroud)

现在在另一个程序(我们称之为warning.py)中它说:

from box import box

box('Warning, water found in hard drive')
Run Code Online (Sandbox Code Playgroud)

是否有一个我可以使用的工具,它会看到它从框中导入框函数(或类的一个类)并将该函数(或类,甚至变量定义)插入到警告.py脚本中删除导入行(从而使它更便携)?

感谢Narnie

Joe*_*ton 7

听起来你想要将所有内容有效地复制粘贴到一个文件中,以便能够分发单个文件而不是几个文件?

在这种情况下,请考虑使用压缩模块而不是将所有内容复制粘贴到一个文件中...从长远来看,这是更易于维护的.

如果__main__.py内部有文件,Python将执行一个zip文件.

例如:

echo "def foo(): print 'code inside a.py'" > a.py
echo "def bar(): print 'code inside b.py'" > b.py
echo "import a; import b; a.foo(); b.bar()" > __main__.py
zip test.zip a.py b.py __main__.py
rm a.py b.py __main__.py

python test.zip
Run Code Online (Sandbox Code Playgroud)

这会创建一个包含3个python文件的zip文件.它可以执行python test.zip.一切都是完全独立的.(我相信这需要python> = 2.6,顺便说一句......)