2011-01-31 11 views
2

私の意図は、完全に移植性があり、システムに依存しないLinux Pythonの最小限のベースをコンパイルしようとすることです。 Pythonベースはまったくありません)。Linuxにシステムに依存しない最小限のPythonフットプリントを作成する

これは、Pythonバイナリファイルだけでなく、この移植可能なPythonベースによってロードされている最小限のカスタムセットのモジュールを持つWindows上で比較的容易に実行されました。

しかし、Pythonを最初からコンパイルするとシステムのモジュール(例:/usr/lib/python2.6)が自身のLibサブディレクトリから読み込まれるため、Linuxでこの目標を達成することは非常に難しいですこのPythonベースを別の場所に移動すると、それを見つけることができません。

もし可能であれば、コンパイルされたディストリビューションよりも多くのLinuxベースのディストリビューションで実行できるように 'python'をコンパイルする方法はありますか?

EDIT:私はそれがWindows上で必要として働いている既に設定のPythonベースにのpython2.6(またはちょうどのpython)を(移動しようとすると、実際には、問題が来るが、それは
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] under Linux instead.
を出力します私はそれがLIBDIRは、私が最近設定(exec_prefix)/lib/python$(VERSION)代わりの(exec_prefix)/libに設定されているとしなければならないかもしれませんが、言うことができるものを。

からの読み取りにどのフォルダとファイルの定義の方法はありますから、

、代わりにデフォルトのもの?Makefileが正しく処理する(makeしてmakeするnstallはそれを正しいlibフォルダに置きます)。しかしfarfromhomeのprint pthメソッドを使用すると、/home/arnold/Python/libの代わりに/home/arnold/Python/lib/python2.6からロードする傾向があります。

pythonに、デフォルトLIBDIRパスをロードするように強制する方法はありますか?

:このインストールのファイルとフォルダの構造は、あなた自身が作品を提案したよう--prefixを使用して株式LinuxまたはWindowsのPythonのインストール

+1

*ゼロからPythonをコンパイルすると、システムからモジュールがロードされます*何?それが正しいのではないのですか? – SilentGhost

+0

--prefixフラグを使って設定するパスを指定しようとしましたが、 'make install'を入力してそこにインストールします。しかし、コンパイルされたPythonのインストールが「接頭辞」パスフォルダに依存しないようにするかどうかはわかりません。 – JadenBlabber

答えて

2

からとは異なります。私は--prefix=/usr/localでのPython 2.7.1をコンパイルし、その結果にバイナリ結果を実行している:/usr/libへの単一の参照、ちょうど/usr/local/libがないということ

Python 2.7.1 (r271:86832, Jan 31 2011, 11:06:01) 
[GCC 4.5.1 20100924 (Red Hat 4.5.1-4)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> for pth in sys.path: 
...  print pth 
... 

/usr/local/lib/python27.zip 
/usr/local/lib/python2.7 
/usr/local/lib/python2.7/plat-linux2 
/usr/local/lib/python2.7/lib-tk 
/usr/local/lib/python2.7/lib-old 
/usr/local/lib/python2.7/lib-dynload 
/usr/local/lib/python2.7/site-packages 

注意。そして、これは編集やその後のことで何もしないことです。

+0

Python 2.6でも検証済みです。 – farfromhome

+0

私は自分の質問を再編集したので、最初に再帰的にロードしてから、絶対に(パス名で)ロードしました。しかし、 'python'はLIBDIRモジュールからデフォルトのパス名からロードされ、Makefileで定義されたものからロードされません。 – JadenBlabber

関連する問題