导入Python问题

时间:2012-01-05 16:50:55

标签: python import directory

我已经在python中写了几个月了,我从来没有找到过如何导入的解释。我下载了这个带有子文件夹的文件夹,里面有python文件。我正在尝试使用其中一个文件而我正在失去理智。如何正确导入包含其中所有文件的文件夹?

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:2)

正如python documentation on modules所述:

如果您的文件夹听起来像这样:

sound/                          Top-level package
      __init__.py               Initialize the sound package
      effects/                  Subpackage for sound effects
              __init__.py
              echo.py
              surround.py
              reverse.py

导入效果文件夹的所有文件:

from sound.effects import *

请注意,为了能够导入模块,它们必须包含__init__.py文件。

答案 1 :(得分:0)

首先,检查子目录中是否有一个名为__init__.py的文件。 Python不会识别不包含这些文件的目录。

然后,您必须手动更改PYTHONPATH,您可以在sys.path中找到该parent/ __init__.py runner.py example.py language.py 。你可以找到一个很好的例子here

编辑:我不是100%确定这是你要求的。如果要导入目录中的所有python文件,则必须逐个导入它们。例如,给定一个像这样的目录:

from parent import runner, example, language

你必须输入

from parent import * # this will also import __init__

{{1}}

答案 2 :(得分:0)

您必须在目录中创建一个__init__.py文件,使其成为一个包。在此文件中,您可以导入基础文件中的所有符号。

有关此问题的进一步说明,请参阅http://docs.python.org/tutorial/modules.html(特别是第6.4部分包)。

答案 3 :(得分:0)

父文件夹必须位于PYTHONPATH或文件中指示的文件夹路径,其中扩展名.pth位于路径中的某个位置,通常位于site-packages

然后你的包及其中必须导入的所有文件夹都需要有一个名为__init__的文件。此文件可用于程序初始化,但作为起点,它可以是空文件。

例如,位于C:\python26的我的程序文件夹具有结构:

programas\

.....package1\
.........__init__.py
.........module1.py
.........subpackage1\
.............__init__.py
.............module2.py

.....package2\
.........__init__.py
.........module3

.....__init__.py
.....lonelyscript1.py
.....lonelyscript2.py

文件site-packages\site.pth包含:

C:\Python26\programas