用于合并导入项的Python工具

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

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

def box(text='Hello, World!')
    draw the box magic
    return

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

from box import box

box('Warning, water found in hard drive')

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

谢谢,
Narnie

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

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

如果内部有__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

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

点赞