Импорт проблем с Python - PullRequest
       15

Импорт проблем с Python

0 голосов
/ 05 января 2012

Я пишу на python уже пару месяцев, и я так и не нашел объяснения, как работает импорт. Я скачал эту папку с подпапками с файлами Python в них. Я пытаюсь использовать один из этих файлов и схожу с ума. Как правильно импортировать папку со всеми файлами в ней?

Любая помощь будет принята с благодарностью.

Ответы [ 4 ]

2 голосов
/ 05 января 2012

Как написано в документации python для модулей :

Если у вас звук папки выглядит так:

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 голосов
/ 05 января 2012

Родительская папка должна быть либо в 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
0 голосов
/ 05 января 2012

Вы должны создать файл __init__.py в каталоге, чтобы сделать его пакетом.В этом файле вы импортируете все символы из базовых файлов.

См. http://docs.python.org/tutorial/modules.html (особенно часть 6.4 Пакеты) для дальнейших примечаний по этому вопросу.

0 голосов
/ 05 января 2012

Сначала проверьте, есть ли в подкаталогах файл с именем __init__.py file.Python не распознает каталоги, которые не содержат эти файлы.

Затем вам придется вручную изменить PYTHONPATH, который вы можете найти в sys.path.Вы можете найти отличный пример здесь .

Редактировать: Я не уверен на 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__
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...