2011-06-26 11 views
2

Python 2.7のスクリプトをクライアントの重要なマシンに実行する必要があるため、何もインストールする権限がありません。何も言わないときは、ローカルディレクトリにも何も意味しません。私が見つけた解決策は、彼に電池を含むツール "freeze.py" http://wiki.python.org/moin/Freezeで作成されたバイナリとしてスクリプトを渡すことです。また、同じフォルダ(_io.so、_heapd.so、。 ..)を実行し、実行可能なパーミッションを与えます。Pythonのfreeze.py生成されたbinが実行されない

しかし、私は私が取得バイナリを実行しようとすると:

Traceback (most recent call last): 
    File "/usr/lib/python2.7/site.py", line 562, in <module> 
    File "/usr/lib/python2.7/site.py", line 544, in main 
    File "/usr/lib/python2.7/site.py", line 271, in addusersitepackages 
    File "/usr/lib/python2.7/site.py", line 246, in getusersitepackages 
    File "/usr/lib/python2.7/site.py", line 236, in getuserbase 
    File "/usr/lib/python2.7/sysconfig.py", line 558, in get_config_var 
    File "/usr/lib/python2.7/sysconfig.py", line 457, in get_config_vars 
    File "/usr/lib/python2.7/sysconfig.py", line 310, in _init_posix 
IOError: invalid Python installation: unable to open /usr/lib/python2.7/config/Makefile (No such file or directory) 

を私はデフォルトのPython 2.7にいくつかのコードを見つけるためにしようとしていると思いますが、凍結の目標はと環境に実行可能になるため、それは不合理ですノーパイソン、ドキュメントから:

あなたは、Pythonを書きたい、しかし、あなたはあなたのクライアントは、Python がインストールされているかどうかを知りません 場合は、これを使用!

だから私は間違っていますか?

P .:私はhello.pyの例を試してみたのと同じエラーになります。このツールは時代遅れです。

+0

これは変です。あなたはpythonの別のバージョンを試してみましたか? 2.6を使用していますが、init_warningに問題があります(結果の.cファイルにコメントする必要がありますが)。 – ondra

+0

この問題の治療法を見つけましたか? –

答えて

2

私はこのようなソースパッケージからのPython-2.7.2 /ツール/凍結/ makefreeze.pyパッチを適用:

--- orig/Python-2.7.2/Tools/freeze/makefreeze.py 2011-06-11 17:46:28.000000000 +0200 
+++ 2.7.2/Python-2.7.2/Tools/freeze/makefreeze.py 2011-11-15 18:18:33.632177119 +0100 
@@ -23,6 +23,7 @@ 
""" + ((not __debug__ and """ 
     Py_OptimizeFlag++; 
""") or "") + """ 
+  Py_NoSiteFlag = 1; 
     PyImport_FrozenModules = _PyImport_FrozenModules; 
     return Py_FrozenMain(argc, argv); 
} 

- 私は)(冷凍メインにPy_NoSiteFlag = 1;を追加したので、暗黙のimport site>を起動時のPythonインタプリタは無効になります。

フランク