2017-02-01 9 views
-1

это возможно для меня, чтобы иметь 2 отсоединенные пакетов питона, где первая часть пространства имен идентична:как создать 2 питона пакеты с общим пространством имен префиксов

pyPackageOne:

package_one 
| 
|-companyname 
    | 
    |-__init__py 
    |-moduleone 
     | 
     |-__init__.py 
     |-dostuff.py 

pyPackageTwo:

package_two 
| 
|-companyname 
    | 
    |-__init__py 
    |-moduletwo 
     | 
     |-__init__.py 
     |-dothings.py 

so companyname является общим префиксом в названии?

Я хочу, чтобы иметь возможность установить и использовать оба пакета:

$ pip install moduleone 
$ pip install moduletwo 
>>> from companyname.moduleone import dostuff 
>>> from companyname.moduletwo import dothings 

Я использую Python 3.6

+0

Я думаю, что ваша проектная структура должна работать. Вы проверили, не задали ли здесь вопрос? – Pax0r

+1

@ Pax0r: Я сделал, но благодаря вашему комментарию я нашел свою ошибку в пакете, который, как я предполагал, имел отношение к общему имени. благодаря! – polo

+0

@ Pax0r место, где эта стратегия выходит из строя, - это когда я пытаюсь использовать один пакет внутри другого: например, если dothings.py включает в себя: 'from companyname.moduleone import dostuff' – polo

ответ

0

как сказал Pax0r в своем комментарии, моя первоначальная структура работы. см мой минимальный пример:

https://github.com/omerholz/pymoduleone

https://github.com/omerholz/pymoduletwo

место, где эта стратегия не будет, когда я пытаюсь использовать один пакет внутри другого: например, если dothings.py включает в себя: from companyname.moduleone import dostuff мы получим ModuleNotFoundError: No module named 'companyname.moduleone'