【问题标题】:Import Python Issues导入 Python 问题
【发布时间】:2012-01-05 16:50:55
【问题描述】:

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

任何帮助将不胜感激。

【问题讨论】:

    标签: python import directory


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      首先,检查子目录中是否有一个名为__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__
      

      【讨论】:

        【解决方案3】:

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

        请参阅http://docs.python.org/tutorial/modules.html(尤其是第 6.4 部分包)了解更多说明。

        【讨论】:

          【解决方案4】:

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

          那么你的包和你必须从中导入的所有文件夹都需要有一个名为__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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-02-22
            • 2012-11-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-02-09
            相关资源
            最近更新 更多