如何使用__init__.py和code.py在code2.py中执行我的python代码

时间:2015-05-26 05:57:27

标签: python python-2.7

我有一个如下目录结构:

├── 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.

1 个答案:

答案 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')。绝望时使用。