나는 this guide에 따라 사용자 정의 파이썬 패키지를 만든, 그래서 나는 다음과 같은 구조를 가지고 :현재 작업 디렉토리가 setup.py의 설치 경로에 영향을 미치는 이유는 무엇입니까? 어떻게 방지 할 수 있습니까?
mypackage/ <-- VCS root
mypackage/
submodule1/
submodule2/
setup.py
을 그리고 setup.py는 가이드와 완전히 동일한 정보가 포함되어 내가 발견 한
from setuptools import setup, find_packages
setup(name='mypackage',
version='0.1',
description='desc',
url='vcs_url',
author='Hodossy, Szabolcs',
author_email='[email protected]',
license='MIT',
packages=find_packages(),
install_requires=[
# deps
],
zip_safe=False)
을 setup.py가있는 폴더로 가서 가상 환경에서 python setup.py install
을 호출하면 사이트 패키지에서 다음 구조가 설치됩니다.
.../site-packages/mypackage-0.1-py3.6.egg/mypackage/
submodule1/
submodule2/
하지만 python mypackage/setup.py install
같은 하나의 폴더에서 위로를 호출하면, 그 구조는 다음과 같다 :
.../site-packages/mypackage-0.1-py3.6.egg/mypackage/
mypackage/
submodule1/
submodule2/
이 나중에 한 유적 내 모듈의 모든 수입 경로가 서브 모듈에 대해 서로 다른 때문이다.
여기에서 무슨 일이 일어나고 있는지, 그런 종류의 행동을 방지하는 방법을 설명해 주시겠습니까?
이것은 Windows와 Linux에서 모두 Python 3.6에서 발생합니다.
답변을 주셔서 감사합니다. find_packages를 사용하지 마십시오. 패키지가 일관성없이 설치됩니다. –
필자는이 파일을 사용해야한다고 생각하지만 빌드를 시작한 디렉토리를 확인하십시오. 그것을 다른 방법으로 표현하기 위해 절대 경로를 지정하지 않으므로 모든 디렉토리에서 setup.py를 실행하고 거기에 패키지를 빌드 할 수 있습니다. 디렉토리 레이아웃이 다른 사람이 빌드하는 위치를 어떻게 알 수 없기 때문에 그 목적이 있습니다. 따라서 패키지는 현재 디렉토리에서부터 수집됩니다. 중복되는 것처럼 보이더라도 계층 구조에 하나의 하위 폴더가 있어야한다고 생각합니다. ''mypackage-source/mypackage/submodule1''과 같은 것 – allo