Интеграция сложного макета пакета в PyDevPython

Программы на Python
Ответить
Anonymous
 Интеграция сложного макета пакета в PyDev

Сообщение Anonymous »

Я работаю над проектом, у которого довольно сложная структура пакета. В частности, на верхнем уровне дерева каталогов проекта есть файл setup.py следующего вида:

Код: Выделить всё

from setuptools import setup

setup(
name='ksoc2',
version='0',
packages=['ksoc2.common',
'ksoc2.common.src.main.python.math.robust_polyval',
'ksoc2.common.src.main.python.utils',
'ksoc2.models',
'ksoc2.models.src.main.python.flatFieldModel',
'ksoc2.models.src.main.python.gainModel',
'ksoc2.models.src.main.python.prf',
'ksoc2.models.src.main.python.raDec2Pix',
'ksoc2.models.src.main.python.readNoiseModel',
'ksoc2.models.src.main.python.saturationModel',
'ksoc2.models.src.main.python.wellDepthModel',
'ksoc2.pa',
'ksoc2.pa.src.main.python',
'ksoc2.tad',
'ksoc2.tad.src.main.python'],
package_dir={'' : '.',
'ksoc2.common' : 'common',
'ksoc2.models' : 'models',
'ksoc2.pa'     : 'pa',
'ksoc2.tad'    : 'tad'},
package_data={'ksoc2.common' : ['src/main/python/utils/data/*'],
'ksoc2.models' : ['src/main/python/saturationModel/data/*',
'src/main/python/gainModel/data/*',
'src/main/python/raDec2Pix/data/*',
'src/main/python/readNoiseModel/data/*',
'src/main/python/wellDepthModel/data/*']},
include_package_data=True,
url='',
license='',
author='PT',
author_email='peter.tenenbaum@nasa.gov',
description='Packages for KSOC2',
install_requires=['astropy', 'matplotlib', 'scipy', 'scikit-learn',
'numpy', 'astropy', 'spicepy', 'statsmodels']
)
TL;DR: пакет верхнего уровня имеет ряд формализмов, которые позволяют ему включать пакеты, находящиеся на несколько уровней каталогов ниже верхнего уровня. Каждый из каталогов следующего уровня (

Код: Выделить всё

ksoc2.pa
, ksoc2.common и т. д.) имеет файл __init__.py, который выглядит примерно так:

Код: Выделить всё

from .src.main.python.process_background_pixels import *
from .src.main.python.process_target_pixels import *
from .src.main.python.fit_motion_polynomials import *
from .src.main.python.perform_simple_aperture_photometry import *
from .src.main.python.controller import *
from .src.main.python.pa import *
Эта настройка позволяет pip install делать правильные вещи: когда я устанавливаю пакет ksoc2, он автоматически помещает все файлы из всех подкаталогов ksoc2 в правильные места, разрешает необходимые для установки пакеты и т. д. PyCharm также понимает эту конфигурацию: когда я редактирую, например, модуль в pa/src/main/python, его операторы импорта не помечаются как неразрешено.
К сожалению, PyDev, похоже, не может понять эту конфигурацию, поскольку, когда я смотрю, например, на модуль в pa/src/main/python, он помечает импорт из ksoc2.common как неразрешенный.
Как мне заставить PyDev правильно определить, что этот импорт на самом деле находится в ksoc2 пакет?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»