Импорт файлов из другой папки - PullRequest
1044 голосов
/ 08 декабря 2010

У меня следующая структура папок.

application/app/folder/file.py

и я хочу импортировать некоторые функции из file.py в другой файл Python, который находится в

application/app2/some_folder/some_file.py

Я пробовал

from application.app.folder.file import func_name

и некоторые другие различные попытки, но до сих пор мне не удавалось правильно импортировать. Как я могу это сделать?

Ответы [ 21 ]

0 голосов
/ 11 июля 2019

Я работал над проектом a, который я хотел, чтобы пользователи устанавливали через pip install a со следующим списком файлов:

.
├── setup.py
├── MANIFEST.in
└── a
    ├── __init__.py
    ├── a.py
    └── b
        ├── __init__.py
        └── b.py

setup.py

from setuptools import setup

setup (
  name='a',
  version='0.0.1',
  packages=['a'],
  package_data={
    'a': ['b/*'],
  },
)

MANIFEST.in

recursive-include b *.*

а / INIT .py

from __future__ import absolute_import

from a.a import cats
import a.b

а / a.py

cats = 0

A / B / * 1021 INIT * .py

from __future__ import absolute_import

from a.b.b import dogs

а / б / b.py

dogs = 1

Я установил модуль, запустив в каталоге следующее с MANIFEST.in:

python setup.py install

Затем из совершенно другого места в моей файловой системе /moustache/armwrestle я смог запустить:

import a
dir(a)

Что подтвердило, что a.cats действительно равнялось 0, а a.b.dogs действительно равнялось 1, как и предполагалось.

...