2009-07-15 9 views
1

Python 2.6に依存するPythonコードを取得する必要があります(Python 2.3のみのマシンで実行しています(ルートアクセスはありません)。すべてのPythonライブラリを持つvirtualenv

これはvirtualenvの典型的なシナリオです。唯一の問題は、すべてのライブラリを新しい環境にコピーするように私に説得することができないということです。

virtualenv --no-site-packages my_py26 

私が必要とするものはありません。ライブラリファイルはまだ/usr/lib/python2.6ディレクトリへのリンクのみです。

いいえvirtualenvがこのシナリオの正しい解決策であるかどうかは疑問です。私が理解していることから、まったく同じPythonバージョンを持つマシン上でのみ動作するようになっています。 環境変数tweekingの後にPythonファイルを開始するので、cx_Freezeなどのツールは私のためには機能しません。

すべてのPythonライブラリファイルを新しい環境にコピーする隠しvirtualenvオプションがありますか?またはここで助けることができる他のツール?

答えて

4

いいえ、私はあなたが完全にvirtualenvが何を誤解したと思いますか? Virtualenvは、同じ環境に新しい環境を作成することです。は、メイン環境から隔離されています。このような環境では、メイン環境にインストールされないパッケージをインストールできます。また、--no-site-packagesを使用すると、インストールされているメイン環境からあなたを分離することもできます。

2.6を搭載していないマシンでPython 2.6が必要なプログラムを実行する必要がある場合は、そのマシンにPython 2.6をインストールする必要があります。

+0

PyInstallerのようなLennartツールは、古いPythonバージョンを持つマシンやPythonを全く搭載していないマシンに2.6依存Pythonプログラムをインストールできます。 –

+0

これはPythonを含んでいるからです。 :)しかし、あなたが正しいです、それはここのオプションです、特にターゲットマシンはコンパイラを持っていないので、彼はPythonをインストールすることはできません。 –

+2

これは良い答えです.Lennart氏が指摘するように、ユーザーはvirtualenvの目的を理解していないからです。 – jkp

4

私はそれを一度も使用していないため、あなたのvirtualenvの問題についてお手伝いできません。しかし、私は、将来の使用のために何かを指摘します。

ソフトウェアをソースからホームフォルダにインストールし、ルートアクセスなしで実行することができます。例えばのpython 2.6をインストールするには:

~/src/Python-2.6.2 $ ./configure --prefix=$HOME/local 
~/src/Python-2.6.2 $ make 
... 
~/src/Python-2.6.2 $ make install 
... 
export PATH=$HOME/local/bin:$PATH 
export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH 

~/src/Python-2.6.2 $ which python 
/home/name/local/bin/python 

これは私がrootアクセス権を持っていないソフトウェアをインストールするためにユニで使用しているものです。

0

あなたはcx_Freezeなどがあなたにとってうまくいかない理由を明確に説明していません。古いバージョンのPythonを持つマシンやPythonを全く持っていないマシンにPythonアプリケーションを配布する通常の方法は、PyInstallercx_Freezeと同じクラスのツール)のようなツールです。 PyInstallerはすべての依存関係のコピーを作成し、すべてのPython依存関係を含む単一の実行可能ファイルを作成することができます。

このようなツールを使用できない理由として、環境変数の調整が挙げられます。これがなぜ正確に拡大すれば、より有益な答えを得ることができるかもしれません。

関連する問題