6

Python 2.3.4 がプリインストールされた Linux マシンでコードを実行する必要があります。私はそのマシンの sudoers リストに載っていないので、Python 2.6.4 をホーム ディレクトリ (のサブディレクトリ) にビルドしました。次に、(初めて)virtualenvを使用しようとしましたが、次のようになりました:

$ Python-2.6.4/python virtualenv/virtualenv.py ENV
New python executable in ENV/bin/python
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Installing setuptools.........
 Complete output from command /apps/users/dspitzer/ENV/bin/python -c "#!python
\"\"\"Bootstrap setuptoo...

" /apps/users/dspitzer/virtualen...6.egg:
 Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
'import site' failed; use -v for traceback
Traceback (most recent call last):
 File "<string>", line 67, in <module>
ImportError: No module named md5
----------------------------------------
...Installing setuptools...done.
Traceback (most recent call last):
 File "virtualenv/virtualenv.py", line 1488, in <module>
  main()
 File "virtualenv/virtualenv.py", line 529, in main
  use_distribute=options.use_distribute)
 File "virtualenv/virtualenv.py", line 619, in create_environment
  install_setuptools(py_executable, unzip=unzip_setuptools)
 File "virtualenv/virtualenv.py", line 361, in install_setuptools
  _install_req(py_executable, unzip)
 File "virtualenv/virtualenv.py", line 337, in _install_req
  cwd=cwd)
 File "virtualenv/virtualenv.py", line 590, in call_subprocess
  % (cmd_desc, proc.returncode))
OSError: Command /apps/users/dspitzer/ENV/bin/python -c "#!python
\"\"\"Bootstrap setuptoo...

" /apps/users/dspitzer/virtualen...6.egg failed with error code 1

PYTHONHOME を何らかの値に設定する必要がありますか? (より適切な名前がないため、意図的に ENV に「ENV」という名前を付けました。)

これらのエラーを無視できるかどうかわからないので、nose (0.11.1) を ENV にインストールしてみました。

$ cd nose-0.11.1/
$ ls
AUTHORS    doc/               lgpl.txt     nose.egg-info/  selftest.py*
bin/       examples/          MANIFEST.in  nosetests.1     setup.cfg
build/     functional_tests/  NEWS         PKG-INFO        setup.py
CHANGELOG  install-rpm.sh*    nose/        README.txt      unit_tests/
$ ~/ENV/bin/python setup.py install
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Traceback (most recent call last):
 File "setup.py", line 1, in <module>
  from nose import __version__ as VERSION
 File "/apps/users/dspitzer/nose-0.11.1/nose/__init__.py", line 1, in <module>
  from nose.core import collector, main, run, run_exit, runmodule
 File "/apps/users/dspitzer/nose-0.11.1/nose/core.py", line 3, in <module>
  from __future__ import generators
ImportError: No module named __future__

何かアドバイス?

4

5 に答える 5

8

カスタム python ビルドで実際に「make install」を実行しましたか? 通常、次のようなことをしたいでしょう

./configure --prefix=/path/to/installdir  (other options)
make
make install

プレフィックスは、完全な書き込み権限を持つ任意のディレクトリにすることができます。たとえば、私は共有ホスティング環境で $HOME/apps をよく使用します。

次に、ビルド ディレクトリからではなく、/path/to/installdir/bin/python を実行します。これで正しい変数が作成され、その後 virtualenv をインストールできます。setup.py を使用して virtualenv をインストールするのが最善かもしれません:

cd virtualenv_source_dir
/path/to/installdir/bin/python setup.py install

これには、同じ方法を使用して、最初に setuptools をインストールする必要がある場合があります。

そして最後に:

# Just to be safe
export PATH="/path/to/installdir/bin:$PATH" 

virtualenv ~/ENV
~/ENV/bin/pip install somepackage # (and such)
于 2010-02-17T03:07:27.750 に答える
2

カスタム コンパイル済み Python を実際にインストールしたことを確認するという Crast の提案に加えて、カスタム Python が実際にそのライブラリを見つけられることも確認する必要があります。これは、 に関するメッセージで得られるヒントですPYTHONHOME.bashrcインポート エラーは、適切なシェル構成で設定する必要があることを示唆していますexport PYTHONHOME=/path/to/python_installation

さらに、virtualenv にデフォルト以外のバージョンの python を使用するように指示する場合は、次のような-p,--pythonフラグを使用する必要があります。

virtualenv --python=/path/to/python_installation/bin/python myenv

関連する質問「異なる Python バージョンを virtualenv で使用する」も参照してください。

于 2010-02-17T03:21:39.070 に答える
1

lib/python2.6 に既に easy_install がある既存のディレクトリにインストールしようとすると、同じエラーが発生しました。lib64/python2.6 から lib/python2.6 へのリンクを張る必要がありました。

私の修正が正しい修正であると言っているのではなく、このエラーが発生する可能性がある別の理由を指摘しています。

于 2011-09-19T14:37:28.303 に答える
0

@Crastの回答にコメントとしてこれを追加するのに十分な担当者がいません。この質問は4歳ですが、これは誰かに役立つかもしれません。Windows ではpython.exeにパスアウトする必要がありますが、Linux/OS X ではフォルダーにパスするだけのようです。例:

ウィンドウズ:

virtualenv -p <PATH TO YOUR DESIRED PYTHON.EXE> venv

現在のディレクトリのサブフォルダー「venv」に仮想環境を作成します。

于 2015-02-04T17:42:55.120 に答える
0

Now you can easily install Python as an unpriviledged user using Anaconda: http://continuum.io/downloads

この質問に似ています。回答の1つが新しい環境の作成について詳しく説明しているため、virtual-envを使用する必要はなく、時々発生する落とし穴を回避できます:仮想環境へのAnacondaのインストール

conda create -n myenv1 ipython scipy

于 2013-06-24T22:17:04.553 に答える