Есть ли альтернативная функция Python, как PHP включает () функцию? - PullRequest
2 голосов
/ 26 декабря 2010

Путь к моему проекту Python /project и это его файлы:

/project/test.py
/project/templates/
/project/includes/
/project/includes/config.py
# config.py
import os
template_path = os.path.join(os.path.dirname(__file__), "templates")

, когда я использовал функцию execute () для включения config.py из test.py, файла /project/includes/config.phpбыл выполнен, и результат был возвращен в /project/includes/test.py, поэтому переменная template_path была сохранена как /project/includes/templates/, а папка шаблонов там не найдена.
Я хочу, чтобы функция включала /project/includes/config.py из /project/test.py и выполняла все функции в/project/includes/config.py до test.py.

Ответы [ 3 ]

3 голосов
/ 26 декабря 2010

Создайте (пустой) файл __init__.py в includes.

В test.py, позвоните config.py, выполнив import.

from includes import config

Так что если есть функция скажем foo в config, вы будете называть ее следующим образом:

config.foo()

См. Документацию (как указано MYYN )

3 голосов
/ 26 декабря 2010

В Python вы не включаете , вы импортируете , также вы не импортируете файлы и каталоги , вы импортируете модули и пакеты, которые часто (но не всегда) файлы и каталоги присутствуют где-то в пути Python.Поэтому обычной практикой является помещение всех ваших модулей в пакет, который пользователь должен поместить в путь Python, а затем импортирование модулей оттуда.Импорт файлов возможен, но не рекомендуется.

Если ваш модуль config является реальным модулем в вашей библиотеке, внутренней конфигурации или конфигурации сайта, вам нужно создать новый пакет, названный как вашПроект назван, поместите в него config и другие модули.Также обратите внимание, что из-за структуры модуля / пакета, используемой в Python, создание проекта с каталогом includes для модулей внутри него не будет работать очень хорошо.

Если ваш файл config.pyПредполагается, что пользовательская конфигурация, вы можете посмотреть на ConfigParser модуль, или использовать сторонний cfgparse.

2 голосов
/ 26 декабря 2010

Вы обычно включаете код из других файлов (называемых модулями) через import.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...