目標:
- 最新の Python パッケージ ツールセットを利用して、独自のパッケージをいくつかの virtualenv にデプロイ/インストールします。
- インストールされたパッケージには、コンパイル済みの *.pyc (または *.pyo) のみが含まれ、ソース ファイルは含まれません。
- いくつかのパッケージがあり、ベンダー名 (ここではスタジオ用にdgmxを選択) がパッケージ名として使用されます。したがって、インストールされるパッケージはdgmx/alucard、dgmx/banshee、dgmx/carmillaなどになります。
- インストールされたパッケージのファイル階層は、
python setup.py install --single-version-externally-managed
またはによるものと同じである必要がありますpip install
。*python setup.py install* を手動で *pip install* すると正確な結果が得られないのはなぜですか? を参照してください。
要するに質問:
私は、コンパイルされた *.pyc(または *.pyo) ファイルのみによって、独自の名前空間パッケージを virtualenv にデプロイするのが好きです。このファイル/ディレクトリ階層は、多くのooxx.eggパスによって汚染されたsys.pathで名前空間を反映するだけです。
私が試したこと:
python setup.py bdist_egg --exclude-source-files
それからeasy_install ooxx.egg
。- 各名前空間パッケージの「sys.path」を汚染します。
python setup.py install --single-version-externally-managed
.- *.pyc のみではありません。
- 「install_requires」は無視されました!
- アンインストールを正しく行うには、 ooxx.egg-info/installed-files.txtを手動で配置する必要があります。
pip install .
「setup.py」の場所にあります。- *.pyc のみではありません。
pysetup install .
「setup.py」の場所にあります。- *.pyc のみではありません。
更新:
私の現在の考えは、方法2に従うことです。
python setup.py egg_info --egg-base .
# requires.txt を取得python setup.py install --single-version-externally-managed --record installed-files.txt
# installed-files.txt を取得- 「requires.txt」を介して他の依存関係を手動でインストールします
- 「installed-files.txt」を使用して、インストールされたソース ファイル (*.py) を手動で削除します。
- 「installed-files.txt」からソース ファイル (*.py) を削除し、展開された「ooxx.egg-info/installed-files.txt」に配置します。
参考文献: