2012-01-05 111 views
0

我一直在Python中写几个月,我从来没有找到一个通过解释如何导入工程。我下载了这个文件夹与子文件夹中的python文件。我正尝试使用这些文件中的一个,并且我正在放松自己的想法。你如何正确地导入一个包含所有文件的文件夹?导入Python问题

任何帮助将不胜感激。

回答

0

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

然后,您将不得不手动更改PYTHONPATH,您可以在sys.path中找到它。你可以找到一个很好的例子here

编辑:我不是100%确定这是你要求的。如果你想导入一个目录中的所有python文件,你将不得不一一导入它们。例如,给定一个目录,如下所示:

parent/ 
    __init__.py 
    runner.py 
    example.py 
    language.py 

你必须键入

from parent import runner, example, language 

from parent import * # this will also import __init__ 
0

你必须在该目录下创建一个__init__.py文件,使之成为包。在这个文件中,您可以从基础文件中导入所有符号。

请参阅http://docs.python.org/tutorial/modules.html(尤其是第6.4部分包)以获取更多有关此方面的说明。

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文件。

0

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

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

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

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