我有一个如下目录结构:
├── data
│ └── abc.txt
└── modules
├── code2.py
├── code.py
├── code.pyc
└── __init__.py
我想通过仅使用code2.py和__init__.py
文件来执行code.py。技术上我的__init__.py
文件为空。
到目前为止,我的code2.py文件如下所示(我确信我遗漏了一些内容):
#!/usr/bin/env python
from code import *
如何从code2.py
执行code.py.答案 0 :(得分:0)
需要__ init__.py文件才能使Python将目录视为包含包;这样做是为了防止具有通用名称的目录(例如字符串)无意中隐藏稍后在模块搜索路径上发生的有效模块。在最简单的情况下,__ init__.py可以只是一个空文件,但它也可以执行包的初始化代码或设置__ all__变量,稍后将对此进行描述。
如果你真的想要使用它,那就是这样的:
1.像模块一样对待:导入文件。这很好,因为它安全,快速,可维护。代码会被重用,因为它应该被完成。大多数Python库使用多个扩展到大量文件的方法运行。强烈推荐。请注意,如果您的文件名为file.py,则导入的末尾不应包含.py扩展名。
2.臭名昭着(和不安全)的exec命令:execfile(' file.py')。不安全,hacky,通常是错误的答案。尽可能避免。
3.Spawn一个shell进程:os.system(' python file.py')。绝望时使用。