###python3でpycを詰め込んだzipアプリを作りたい
python2.7では、ソースコードを含めない状態で、バイトコンパイルされた
pyc ファイルだけを詰め込んだ zip に_main_.py を含めてやると、そのアプリが動作します。
$ py -2 aa.zip hello hello
この時のaa.zip の内容は
__main__.py foo.pyc bar.pyc
main.py から、import foo, bar して、それらのモジュールの機能が呼び出せます。
###python 3.4 で試してみたこと
python3.4 も使い始めました。python 3.4は import すると pycache ディレクトリが出現して、そこに foo.cpython-34.pyc や bar.cpython-34.pyc としてバイトコンパイルされたファイルが生成されるようです。
そこで、次のようにアーカイブしてみました。
__main__.py __pycache__/foo.cpython-34.pyc __pycache__/bar.cpython-34.pyc foo.pyc bar.pyc
しかしこれを実行するとエラーが生じます。
$ py -3 aa.zip hello Traceback (most recent call last): File "D:\dd\Python34\lib\runpy.py", line 170, in _run_module_as_main "__main__", mod_spec) File "D:\dd\Python34\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "aa.zip\__main__.py", line 1, in <module> zipimport.ZipImportError: can't find module 'foo'
##やりたいことは
python2 と pytho3向けの pyc ファイルを詰め込んだzipファイルで、どちらでも動作するアプリを作りたいです。
そのようなことは実現できるのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/14 23:18