Конфликт пакета пространства имен

У меня есть пакет, над которым я работаю ( LDB_Algebra). У него есть дополнительный, который зависит от другого пакета, который я создал ( LDB_LAPACK). Я создал virtualenv и установил каждый из этих пакетов, как показано ниже:

$ virtualenv -p pypy ve_pypy
$ . ve_pypy/bin/activate
(ve_pypy) $ pip install LDB_LAPACK
...
(ve_pypy) $ python setup.py install
... (Installs LDB_Algebra)

Каждый имеет следующее для его __init__.py файл в пакете ldb:

__import__('pkg_resources').declare_namespace(__name__)

Проблема:

Беда в том, что когда я пытаюсь использовать ldb.algebra он сообщает, что не может найти пакет. Просто чтобы убедиться, что он не потерял полностью все, что я пытаюсь импортировать ldb.lapack и это прекрасно работает. Это говорит о том, что у меня проблема с пакетом пространства имен. Похоже, что подобный вопрос был задан здесь (к сожалению, без ответа). Исследуя структуру каталогов моего virtualenv, я обнаружил, что под ve_pypy/site-packages/ есть папка для ldb пакет пространства имен, который включает в себя lapack пакет, но не algebra пакет. Я также вижу файл яйца, LDB_Algebra-0.3.2-py2.7.egg, Внутри этого яичного файла в ldb каталог является __init__.py файл с соответствующей декларацией пространства имен (как указано выше). Предположительно это должно быть, где он получает ldb.algebra пакет, но он не смотрит туда.

Вопросы:

  1. Может ли кто-нибудь подтвердить ссылкой, что то, что я вижу, является известной проблемой (то есть, что я не просто делаю что-то немного неправильное, что вызывает все эти проблемы)? Созданы ли яйца и какой-либо метод установки пипсов (ldb каталог пакетов в site-packages) принципиально несовместимы?

  2. Предполагая, что ответ на первый вопрос заключается в том, что мой метод установки пакетов в корне ошибочен, существует ли более простой способ установки LDB_LAPACK пакет из пипи и тому LDB_Algebra пакет из моего локального каталога? Я не специалист по setuptools или что-то в этом роде, поэтому ответ может быть очень простым (не забывайте об очевидном).

1 ответ

Решение

Видимо, это хорошо известная проблема. Решение, которое было предложено мне и, кажется, работает нормально, заключается в использовании pip install . вместо python setup.py install,

Другие вопросы по тегам