私が関わっているプロジェクトでは、Ubuntu 14.04 (Python 3.4 を使用) で compileall.compile_dir を使用して Python 製品をパッケージ化しています。pycファイル等のディレクトリをまとめて(tar.gzファイル)配布しています。ファイル名は、ファイル名の cpython-34 部分を削除するように変更されます。
Python 3.5 を搭載した Ubuntu 16.04 を実行する新しいテスト環境があり、コードを実行/テストしたいと考えています。解凍して実行すると、エラーが発生します。
$ ./configure
/usr/bin/python3: can't find '__main__' module in '/home/user/product/configure.pyz'
pyz ファイルを手動で解凍し、コマンド ラインから python を実行しようとすると、インポート後に 3.4 バイナリであるというメッセージが表示されます。代わりに、3.5 マシンでパッケージをビルドすると、3.5 マシンで完全に実行できますが、3.4 にコピーすると同じエラーが発生します。
質問は...実行/テストするには何をする必要がありますか? 私が持っていたアイデア... ある種の 3.4 互換モードで 3.5 を実行しています。3.4 をインストールします (Ubuntu 16.04 用の 3.4 パッケージが見つからないため、おそらくソースから)。3.5 の構成設定を調整してみてはいかがでしょうか。3.4 と 3.5 が機能するように、パッケージ化するときに新しい設定を提供することはできますか? いくつかのアイデアを見逃していると思いますが、解決策が何であると思うかについては尋ねたくありません。解決策が何であるかを知りたいです。
googled で pyc ファイルに関連する SO の問題をたくさん見つけたので、3.4 ファイルには互換性がないことはわかっていますが、それを使用する方法はありますか?