2016-10-24 3 views
0

저는 스튜디오에서 워크 플로를 처리하기 위해 Python 패키지를 개발 중이며 작업 영역별로 프로젝트를 구성하고 있습니다. 또한,이 꾸러미는 끊임없이 성장하고 확장하고 있기 때문에, 나는 'dev'패키지와 'published'패키지를 가지고있다. 커다란 새로운 기능이있을 때마다 코드가 안정적이라고 생각합니다. 'dev'에서 'pub'까지 파일을 복사하여 팀에서 사용할 수 있도록합니다. 나는이 시스템이 마음에 들다. 왜냐하면 일들이 분리되고 코드가 깨끗하게 유지되기 때문이다. scripts_dir가 init.py 파일이 없음을파이썬 패키지 개발 및 별칭을 사용한 상대적 가져 오기

/scripts_dir 
    /dev 
    __init__.py 
    /anim 
     __init__.py 
     cls.py 
    /char 
     __init__.py 
     cls.py 
    /pub 
    __init__.py 
    /anim 
     __init__.py 
     cls.py 
    /char 
     __init__.py 
     cls.py 

노트, 그래서 패키지의 일부가 아니다 :

내 프로젝트 구조는 다음과 같습니다. 단지 컨테이너 폴더 일뿐입니다.

내가 가지고있는 유일한 문제는 패키지 자체의 가져 오기입니다. 지금 당장, 같은 폴더에없는 모듈을 가져올 때마다 전체 경로를 지정해야합니다. 그래서 기본 패키지 이름을 포함하도록 강요하고 있습니다 :

import dev.anim.cls as acl 

이 내 코드를 게시 할 때마다, 나는 각 파일에 가서

import pub.anim.cls as acl 

I에 import 문을 변경해야한다는 것을 의미 나는에 있어야 할 위치에 가까운 '파이썬 2.5 + 뻥되어

from ..anim import cls 

cls.someFunction() 

의 형태로 상대의 수입을 사용하는 것이 가능하다는 것을 봤어요. 그러나 그렇게함으로써 모듈의 별칭을 설정할 수있는 능력을 잃어 버렸고 어떤 경우에는 항상 네임 스페이스를 설정할 기회조차 잃어 버렸습니다 (항상 충돌을 피하기 위해 사용하려고 노력합니다)! 내 경우, 각 폴더의 모듈은 모두 같은 이름을 가지고 있으므로 폴더 (anim, char, ...)에 대한 네임 스페이스가 필요합니다.

누구든지이 문제를 해결하는 더 좋은 방법을 알고 있습니까? 별칭을 사용하여 상대적 가져 오기를 수행 할 수 있습니까?

도움이 될 것입니다.

답변

0

적절한 버전 제어 소프트웨어 (git 또는 mercurial ...와 같은)를 사용하는 것은 어떨까요?

+0

나는 자식을 사용합니다. 내 코드의 버전을 저장하는 데 사용합니다. –

+0

Git을 사용하여 개발 및 게시에 서로 다른 파일을 만들려면 어떻게해야합니까? 지금 내가 사용하는 방법은 내가 여전히 작동하는 하나의 파일이 있고 .git 폴더에 저장된 이전 버전은 ... –

+0

힘내는 가지가있어 다른 하나의 지점을 쉽게 병합 할 수 있습니다. 매우 일반적인 워크 플로우는 프로덕션 코드 인 "master"브랜치와 새로운 기능을 추가하는 "developement"브랜치를 가지는 것입니다. 프로덕션 버전에서 버그가 발생하면 마스터에서 수정하고 개발 지점으로 백 포트하십시오. 개발 버전이 준비되면 마스터 브랜치에서 병합하여 새 프로덕션 버전이됩니다. 또한 개발 환경과 마스터 환경이라는 두 가지 환경을 갖추고 있거나 한 지점에서 다른 지점으로 전환 할 수 있습니다. –