2012-07-06 49 views
13

私はPythonで商用アプリケーションを開発し始めました。私はアプリケーションの配布方法を検討しています。.pycファイルの配布にはどのような制限がありますか?

明白な(商業用の適切なライセンスを持つソースを配布する)以外に、対応する.pyソースのないファイルだけを配布することを検討しています。しかし、私はこれが実行可能であるかどうかを知るためにPythonの互換性保証については十分に精通していません。

.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と互換性がありますか?

やPython 2.7.3で生成する.pycファイルは、Python 3.xのリリースと互換性があるでしょうか?

二倍。

対応する.pyソースがない.pycファイルだけを配布することを検討しています。

Pythonバイトコードは、高水準であり、ほとんど互換性がありません。

+0

私は興味がありました。何とかPythonコードを難読化して配布する方法がありますか? – Levon

+6

@リヴァン:私は知らない、私はそのような愚かなことをしない。 –

+3

まだ、私はまだあなたを賞賛していました:-) – Levon

4

あなたは確かに.pycファイルのみを配布することができます。 Catが述べたように、Pythonの異なるメジャーバージョンとの互換性はありません。ソースコードの表示を妨げる​​人もいますが、.pycファイルは逆コンパイルが非常に簡単です。基本的にコンパイルできれば、それを逆コンパイルすることができます。

py2exe/py2app/freezeのようなバイナリパッケージャを使用できます。私はそれらを試したことはありませんが、もし望むなら、誰かがそれらを逆コンパイルすることができます。

1

猫が言ったように、pycファイルはクロスバージョンセーフではありません。あなたがユーザーから隠そうとしていることが、あなたが何をする必要があるのか​​を決定します。

ソースコードに関しては、分散アプリケーションでPythonソースコードを非表示にする良い方法はありません。特定の詳細を隠そうとすると、それらをC拡張モジュールにパックすることができます。これは、逆コンパイルがはるかに難しくなります。

コードの使用が心配な場合は、コードにライセンスを添付して使用しないでください。また、盗まれたくないセクションをコンパイルした言語に翻訳することもできます。コードをPythonにしたくない場合は、Pythonコードをラップするバイナリ実行可能ファイルを作成できます(ただし、ファイルからファイルを抽出した場合は実際の詳細は隠されません)。

関連する問題