2010-08-12 7 views
1

여기 상황이 있습니다. 제가 지금 일하고있는 회사가 내 응용 프로그램을 개발하기 위해 Java 또는 Python과 함께 작업 할 수있는 자유를주었습니다. 이 회사는 주로 자바에서 경험이 있습니다.Python 프로젝트 배포 디자인

나는 파이썬으로 가기로 결심했다. 그래서 그들은 그들이 갖고있는 데이터베이스 유지 보수와 관련된 모든 파이썬 프로젝트/스크립트를 유지 보수하도록 요청했다.

Java 프로그래머와 비교해 얼마나 많은 자유 시간을 볼 수 있는지 그 모든 재미있는 것들을 처리하는 것은 나쁘지 않습니다. 프로젝트 레이아웃은 엉망입니다.

회사 전체에 가상 컴퓨터를 배치하는 스크립트가 많이 있습니다. 그 중 일부는 몇 개의 모듈 (최대 4 개)에 분산되어있는 복잡한 기능을 가지고 있습니다.

그것에 대해 생각하면서 나는 그 문제를 해결하는 방법을 모르기 때문에 3 가지 질문이 있습니다.

  • 어디에서 독립 실행 형 스크립트를 넣을 수 있습니까? git을 버전 관리 시스템으로 사용합니다.
  • 사용자가 프로그램을 실행하기 위해 폴더를 깊이 파고 들지 않아도되는 방식으로 프로젝트의 레이아웃을 구성하는 방법 (자바에서는 jar 또는 jar와 쉘 스크립트를 만들어 일부 부트 스트랩 작업을 처리 함)
  • 쉽게 재사용 할 수 모듈을 제작하는 표준 방법은 무엇

답변

2

ourDB.clean에 넣고 할 수 있을까?

사람들이하는 일과 사람들이 사용하는 이유에 따라 "기능적으로"구성합니다.

언어 (Python 대 Java)는 부적합합니다.

스크립트는 필요에 중점을 둔 작은 응용 프로그램으로 생각해야하며 해당 응용 프로그램에 적합한 디렉터리 구조를 만들어야합니다.

/opt/thisapp/opt/thatapp을 사용합니다. 공유 마운트 지점이 필요하면 다른 경로를 사용할 수 있습니다.그들이 무엇을 기반으로 - 사용자가 당신을 구성

는 "기능적"프로그램을 실행하는 폴더에 깊이 파고 필요가 없습니다 방식으로 프로젝트의 레이아웃을 구성하려면 어떻게

왜 사람들이 그들을 사용하는지. /opt/thisapp 디렉토리의 최상위 레벨에는 __init__.py (패키지이기 때문에) 및 실제 작업을 시작하는 main.py 스크립트가있을 수 있습니다.

파이썬 2.7과 파이썬 3에는 모듈이 runpy입니다. 이하면 최상위 주요 스크립트의 이름을 것이라고 쉽게 재사용 할 수 모듈을 제작하는 표준 방법은 무엇 __main__.py

http://docs.python.org/library/runpy.html#module-runpy

(mycompany.myapp.mymodule?)를

packages에 대해 읽어보십시오. http://docs.python.org/tutorial/modules.html#packages

2

package는 모듈 계층을 생성하는 방법이다 (mycompany.myapp.mymodule을?) : 당신이 디렉토리에 __init__.py라는 파일을 만들 경우, 파이썬은 그 디렉토리를 패키지로 취급 할 것이고 점으로 찍힌 가져 오기를 사용하여 내용을 가져올 수 있습니다 :

spam \ 
     __init__.py 
     ham.py 
     eggs.py 

import spam.ham 

패키지 내의 모듈은 서로 참조 할 수 있습니다. 문서를 참조하십시오.

이들은 모두 DB 유지 관리 스크립트 인 경우 DB라고하는 패키지를 만들어 모든 패키지를 배치합니다. 좀 더 복잡한 패키지를 만들 수 있습니다. 당신이, 내가 트랜잭션 로그를 정리, 모르는에 대한 스크립트가 있다면 그래서, 당신은 내가 독립 스크립트를 넣어 할

import ourDB.clean 
ourDB.clean.transaction_logs()