>

기본적으로 두 개의 파이썬 프로젝트가 있는데 하나는 myapp/screening 아래에 있습니다.  그리고 다른 myapp/server . 현재 server 를 개발 중입니다   screening 에서 함수를 가져오고 싶습니다.   myapp.screening 사용 .

내 폴더 구조는 다음과 같습니다 :

myapp/
    screening/
        screening-env/
        myapp/
            __init__.py
            screening/
                __init__.py
                screening_task.py
                submodule1/
                    # __init__.py and ub module files
                submodule2/
                    # __init__.py and sub module files
                submodule3/
                    # __init__.py and sub module files
        tests/
            # __init__.py and test scripts
        setup.py
    server/
        server-env/
        myapp/
            __init__.py
            server/
                __init__.py
                server_task.py
        tests/
            __init__.py
            server_test.py

이 답변 에 따라 프로젝트를 구성했습니다.

내 pyzwyz  기본적으로 다음과 같습니다.

setup.py

from setuptools import setup setup( name='myapp-screening', version='0.1.0', packages=[ 'myapp.screening', 'myapp.screening.submodule1', 'myapp.screening.submodule2', 'myapp.screening.submodule3' ], ) 를 활성화했습니다   server-env 로 이동하여 상영 프로젝트를 설치했습니다.  ( myapp/screening/ 와 같은 디렉토리 ) 및 setup.py 를 실행 .

마지막으로, python setup.py develop  그리고 server_test.py  다음과 같습니다 :

server_task

from myapp.screening.screening_test import foo foo() 를 실행할 때  또는 python -m myapp.server.server_task  나는 얻는다 :

python -m test.server_test

Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'myapp.screening' 를 실행중인 경우이 오류가 의미가 있습니다.  지역 python -m myapp.server.server_task 때문에  존재하고설치된 myapp 를 덮어 쓸 수 있습니다.  그것은 myapp 를 포함  모듈.

screening 에서 물건을 가져 오는 방법이 있습니까   screening 사용 ?!

from myapp.screening.screening_task import foo

  • 답변 # 1

    따라서 더 많은 연구를 한 후에 같은 이름의 파이썬 모듈을 가져 오는 비슷한 (질문과 같은) 질문을 발견했으며 어떻게 파이썬에서 네임 스페이스 패키지를 만들 수 있습니까?

    "같은 이름의 모듈을 가져 오기"에 대한 대답은 하나의 모듈 이름을 바꾸거나 프로젝트 디렉토리를 패키지로 바꾸라는 말 때문에 유용하지 않습니다.

    다른 질문은 내가 원하는 것입니다. 그것은 기본적으로 pkgutil 에 대해 이야기합니다.  지정된 네임 스페이스에 모듈을 '추가'할 수 있습니다.

    일부 경우 (이와 같은 경우)에 대해이 기술에 대한 의견을 이해하고 공유하지만 여기에 제시되기 때문에 때때로 분리 된 구조를 원하므로 모든 것을 원하지 않는 경우에도 모든 것을 패치하지 않습니다

  • 이전 uitableview - UITableViewController에 일관되게 적용되지 않는 제약 조건
  • 다음 인수를 사용하여 Java에서 Python 프로그램 실행