2012-07-06 2 views
13

필자는 파이썬으로 상업용 응용 프로그램을 개발하기 시작했으며, 응용 프로그램을 배포하는 방법에 대한 제 선택의 무게를 달고 있습니다..pyc 파일을 배포 할 때의 제한 사항은 무엇입니까?

명백한 (적절한 상업용 라이센스가있는 소스 배포) 이외에도 .pyc 개의 파일을 해당 .py 소스없이 배포하는 것이 좋습니다. 그러나 파이썬의 호환성 보장이 익숙하지 않아서 이것이 실현 가능한 것인지 알 수 없으며, 좋은 아이디어인지 여부는 훨씬 적습니다.

.pyc 파일이 기본 OS와 독립적입니까? 예를 들어, 64 비트 Linux 컴퓨터에서 생성 된 .pyc 파일이 32 비트 Windows 컴퓨터에서 작동합니까?

나는 .pyc 파일 should be compatible across bugfix releases을 발견했지만, 메이저 및 마이너 릴리스는 무엇입니까? 예를 들어, Python 3.1.5로 생성 된 파일은 Python 3.2.x와 호환됩니까? 또는 Python 2.7.3에서 생성 된 .pyc 파일이 Python 3.x 릴리스와 호환됩니까?

편집 :

주로, 내가 불편 배포 소스입니다 이해 관계자를 달래기 할 수 있습니다. 소스가없는 .pyc을 배포하면 소스를 가져 오는 데 디 컴파일 링의 추가 단계가 필요하기 때문에 어느 정도의 편의성을 제공 할 수 있습니다. 정직한 사람들을 정직하게 유지할 수있는 장벽이 있습니다.

답변

16

예를 들어, Python 3.1.5에서 생성 된 파일은 Python 3.2.x와 호환됩니까?

또는 파이썬 2.7.3로 생성 된 .pyc 파일이 파이썬 3.x를 릴리스와 호환 될 제

?

두배 번호.

해당 .py 소스가없는 .pyc 파일 만 배포하는 것이 좋습니다.

파이썬 바이트 코드는 고수준이며 대체로 호환 가능하지 않습니다.

+0

궁금한데, 어쨌든 파이썬 코드를 난독 화하여 배포하는 방법이 있습니까? – Levon

+6

@ Levon : 나도 몰라, 나는 그런 바보 같은 짓하지 않아. –

+3

그리고 아직 나는 아직도 당신을지지했다 :-) – Levon

4

확실히 .pyc 파일 만 배포 할 수 있습니다. Cat이 언급했듯이 다른 Python과는 호환되지 않습니다. 일부 사용자는 소스 코드를 볼 수 없지만 .pyc 파일은 디 컴파일이 매우 쉽습니다. 기본적으로 컴파일 할 수 있다면 디 컴파일 할 수 있습니다.

py2exe/py2app/freeze와 같은 바이너리 패키저를 사용할 수 있습니다. 나는 그들을 시도한 적이 없지만 누군가 원한다면 여전히 그들을 디 컴파일 할 수 있습니다.

1

고양이가 말했듯이 pyc 파일은 교차 버전에 안전하지 않습니다. 사용자로부터 숨기려고하는 것이 사용자가해야 할 일을 결정합니다.

소스 코드는 분산 응용 프로그램에서 Python 소스 코드를 숨길 수있는 좋은 방법이 아닙니다. 특정 정보를 숨기려고하면 C 확장에 압축 할 수 있습니다. 디 컴파일하기가 훨씬 어려울 것입니다.

코드 사용에 대해 걱정이된다면 코드에 라이센스를 첨부하여 사용하지 않거나 훔치려는 섹션을 컴파일 된 언어로 번역하십시오. 파이썬이 분명히 파이썬이 아니길 바란다면 파이썬 코드를 감싸는 바이너리 실행 파일을 만들 수 있습니다 (누군가가 파일에서 코드를 추출 할 때 실제 세부 사항을 숨기지는 않습니다).