나는이처럼 보이는 파이썬 라이브러리 (안 내) 작업입니다 :가져 오기가 파이썬에서 부작용을 일으키는 라이브러리를 패키지하는 방법은 무엇입니까?
.
├── README.md
├── setup.py
└── library
├── __init__.py
├── core.py
├── a.py
└── b.py
자체가 a.py
및 b.py
사용 core.py
의 파일 __init__.py
메이크업 사용. 유의해야 할 중요한 점은 의도적으로 의도 된 일부 부작용이 있다는 것입니다. import library
.
그러나 사용자에게 부작용없이 core.py
의 기능을 사용할 수있는 가능성을 제공하고자합니다. 아쉽게도 import library.core
또는 from library import core
은 __init__.py
(부작용이 발생하는 곳)을 실행합니다.
이 문제를 해결하기 위해 패키지와 setup.py
을 어떻게 재구성 할 수 있습니까?
나는 이런 식으로 생각 :
.
├── README.md
├── setup.py
├── library_core
│ ├── __init__.py
│ ├── core.py
│ ├── a.py
│ └── b.py
└── library
└── __init__.py # Import library_core and apply side effects
내가 packages = ['library', 'library_core']
와 setup.py
를 업데이트 할 것입니다. 이렇게하면 library
을 가져 오면 아무 것도 변경되지 않지만 사용자는 부작용없이 library_core
을 가져올 수 있습니다. 또한 이것은 코드 복제를 피할 것이고 모든 것이 동일한 저장소에 남을 것입니다.
library_core
을 library
에서 가져올 수 없기 때문에 불행히도 파일 트리의 같은 위치에 있지 않기 때문에이 기능이 작동하지 않습니다.
* "나는 도서관에서 library_core를 가져올 수있는 능력이 없기 때문에 불행하게도,이 작동하지 않습니다" * - 이것이 당신의 주된 문제인 것처럼 보이는데,'라이브러리/__ init __. py'에서'library_core import core'를 시도하면 어떻게 될까요? – Kos
@Kos 사실,이게 효과가있을 수 있습니다.라이브러리 _ 코어 가져 오기 *'는 분명히 실패했지만 간단히'import library_core'는 패키지가'python setup.py install'과 함께 ** 설치되면 작동합니다. 나는 이것이 갈 길이라고 생각한다. 그래서 나는 그 질문을 비 웁니다. – Delgan