Я искал в сети: каков лучший способ импортировать модули в Пайтоне? и я находился эти три:
PYTHONPATH
.sys.append("/ruta_directorio")
..pth
.Моя структура - следующая:
project
├── carpeta1
│ ├── __init__.py
│ ├── archivo.py
│ ├── archivo2.py
│ └── subcarpeta1
│ ├── __init__.py
│ └── archivo3.py
└── main.py
Вопрос состоит в том, что я нуждаюсь в том, чтобы импортировать что-то archivo.py
в archivo3.py
. Так carpeta1
как carpeta2
у них есть файл __init__.py
.
Кто-то мог бы показывать меня, какова процедура для этого?.
Так carpeta1 как carpeta2 у них есть файл init.py
.
Если ты в archivo3.py
и ты хочешь импортировать что-то archivo.py
только ты нуждаешься:
from carpeta1.archivo import foo
Так как каталог главного рукописного шрифта (main.py
) эта в PYTHONPATH
по умолчанию не необходимо изменять это. Только иметь значение как ты бы это сделал с main.py
.
Предполагая, что ты выполняешь main.py
, ты не нуждаешься в том, чтобы ничего не изменить. У тебя есть две возможности: используя imports абсолютные или imports относительные.
from carpeta1 import archivo # absoluto
import ..archivo # relativo
Я только что подтвердил это:
$ python -V
Python 3.5.0 :: Continuum Analytics, Inc.
$ cat main.py
from carpeta1.subcarpeta1.archivo3 import VERSION_REL, VERSION_ABS
print(VERSION_REL, VERSION_ABS)
$ cat carpeta1/archivo.py
VERSION = 2.0
$ cat carpeta1/subcarpeta1/archivo3.py
from ..archivo import VERSION as VERSION_REL
from carpeta1.archivo import VERSION as VERSION_ABS
$ python main.py
2.0 2.0
Только ты должен помещать раньше ссылку на модуль, что ты будешь использовать следующие способы:
Все то, у что есть Модуль
from Modulo import *
или
import Modulo
Если ты будешь импортировать только функцию, ты можешь использовать
from Modulo import function
Если они не в том же пакете, ты должен предшествовать имя пакета согласно твоей иерархии.
Это видео 3hs, которое объясняет все то, что ты нуждаешься в том, чтобы узнать на, как обрабатывать информацию с пакетами https://www.youtube.com/watch? v=0oTh1CXRaQ0