作成しているアプリケーションにPythonを埋め込んでおり、Pythonコードを配布するための便利な方法を探しています。私は最近読んでzipimport
、完全に拡張されたツリーを含めるのではなく、すべてのPythonコードを配布するのに便利な方法だと考えました。だから、私はこれと同じように私のパッケージを設定しました:
.
├── setup.py
└── testpack
├── __init__.py
└── pack1
├── foo.py
└── __init__.py
次のようになりsetup.py
ます:
from distutils.core import setup
setup(
name='testpack',
author='FatalError',
version='1.0',
packages=['testpack.pack1']
)
それから私は走っpython setup.py bdist --format=zip
た。しかし、zipの内容を見ると:
$ unzip -l testpack-1.0.linux-x86_64.zip
Archive: testpack-1.0.linux-x86_64.zip
Length Date Time Name
--------- ---------- ----- ----
183 2013-03-13 10:47 usr/local/lib/python2.7/dist-packages/testpack-1.0.egg-info
152 2013-03-13 10:47 usr/local/lib/python2.7/dist-packages/testpack/pack1/__init__.pyc
181 2013-03-13 10:47 usr/local/lib/python2.7/dist-packages/testpack/pack1/foo.pyc
0 2013-03-13 10:41 usr/local/lib/python2.7/dist-packages/testpack/pack1/__init__.py
33 2013-03-13 10:41 usr/local/lib/python2.7/dist-packages/testpack/pack1/foo.py
--------- -------
549 5 files
明らかに、結果は(それほど驚くことではありませんが)での使用には適していませんzipimport
。/
むしろ、これはパッケージをインストールするために解凍することを目的としたzipアーカイブです。
代わりにパッケージをビルドして動作するようにするdistutils
(またはなど)方法はありますか?私が持っているコードは実際にはアプリケーション固有であるため、システムライブラリにインストールされていません。setuptools
zipimport
自分でスクリプトを作成できることはわかっていますが、それでは、それはどのような楽しみですか?たとえば、すべてがプリコンパイルされており、パッケージに配布用ではない単体テストパッケージが含まれていることを確認したいと思います。それで、私はこれらのツールの1つが私のためにそれをすることができることを望んでいました。