2

OS X Mountain Lionにアップグレードしたところ、Python環境のほとんどが停止しました。ディストリビュート0.6.28(python distribute_setup.py install --prefix ~/Library/Python/2.7/site-packages)とpip 1.1(python setup.py install --prefix ~/Library/Python/2.7/site-packages)を最初から再インストールしました。次に、エラーなしでインストールvirtualenvvirtualenvwerapperて経由pipしましたが、コマンドvirtualenv ENVTESTが次のように失敗します。

$ virtualenv ENVTEST
New python executable in TESTENV/bin/python
Please make sure you remove any previous custom paths from your /Users/x/.pydistutils.cfg file.
Installing setuptools.................done.
Installing pip....
Complete output from command /Users/csh401/TESTENV/bin/python /Users/x/TESTENV/bin/easy_install /Users/x/Librar...ort/pip-1.0.2.tar.gz:
/Users/x/TESTENV/bin/python: can't open file '/Users/x/TESTENV/bin/easy_install': [Errno 2] No such file or directory
----------------------------------------
...Installing pip...done.
Traceback (most recent call last):
  File "/Users/x/bin/virtualenv", line 9, in <module>
    load_entry_point('virtualenv==1.7.2', 'console_scripts', 'virtualenv')()
  File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 942, in main
    never_download=options.never_download)
  File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 1054, in create_environment
    install_pip(py_executable, search_dirs=search_dirs, never_download=never_download)
  File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 654, in install_pip
    filter_stdout=_filter_setup)
  File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 1020, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /Users/x/.virtualenvs/env1/bin/python -x /Users/x/.virtu...nv1/bin/easy_install /Users/x/Librar...pport/pip-1.1.tar.gz failed with error code 2

私の最善の推測は、インストールに問題があったという事実とdistribute、引数pipを追加するまでのことです。--prefixしかし、pipが機能している間は、適切な場所にインストールされていません。

アップデート

pipは古いバージョンのvirtualenvをインストールしました。私は走りましたpip install -U virtualenv、そしてこれは問題なく走りました。まだエラーが発生していますが、別のエラーが発生しています。

$ virtualenv -vvv TESTENV
Creating TESTENV/lib/python2.7
Symlinking Python bootstrap modules
  Symlinking TESTENV/lib/python2.7/config
  Symlinking TESTENV/lib/python2.7/lib-dynload
  Symlinking TESTENV/lib/python2.7/os.py
  Ignoring built-in bootstrap module: posix
  Symlinking TESTENV/lib/python2.7/posixpath.py
  Cannot import bootstrap module: nt
  Symlinking TESTENV/lib/python2.7/ntpath.py
  Symlinking TESTENV/lib/python2.7/genericpath.py
  Symlinking TESTENV/lib/python2.7/fnmatch.py
  Symlinking TESTENV/lib/python2.7/locale.py
  Symlinking TESTENV/lib/python2.7/encodings
  Symlinking TESTENV/lib/python2.7/codecs.py
  Symlinking TESTENV/lib/python2.7/stat.py
  Symlinking TESTENV/lib/python2.7/UserDict.py
  File TESTENV/lib/python2.7/lib-dynload/readline.so already exists
  Symlinking TESTENV/lib/python2.7/copy_reg.py
  Symlinking TESTENV/lib/python2.7/types.py
  Symlinking TESTENV/lib/python2.7/re.py
  Symlinking TESTENV/lib/python2.7/sre.py
  Symlinking TESTENV/lib/python2.7/sre_parse.py
  Symlinking TESTENV/lib/python2.7/sre_constants.py
  Symlinking TESTENV/lib/python2.7/sre_compile.py
  File TESTENV/lib/python2.7/lib-dynload/zlib.so already exists
  Symlinking TESTENV/lib/python2.7/warnings.py
  Symlinking TESTENV/lib/python2.7/linecache.py
  Symlinking TESTENV/lib/python2.7/_abcoll.py
  Symlinking TESTENV/lib/python2.7/abc.py
  Symlinking TESTENV/lib/python2.7/_weakrefset.py
Creating TESTENV/lib/python2.7/site-packages
Writing TESTENV/lib/python2.7/site.py
Writing TESTENV/lib/python2.7/orig-prefix.txt
Writing TESTENV/lib/python2.7/no-global-site-packages.txt
Creating parent directories for TESTENV/include
Symlinking TESTENV/include/python2.7
Creating TESTENV/bin
New python executable in TESTENV/bin/python
Changed mode of TESTENV/bin/python to 0755
MacOSX Python framework detected
Symlinking TESTENV/.Python
Testing executable with TESTENV/bin/python -c "import sys;out=sys.stdout;getattr(out, "buffer", out).write(sys.prefix.encode("utf-8"))"
Got sys.prefix result: u'/Users/x/TESTENV'
Please make sure you remove any previous custom paths from your /Users/x/.pydistutils.cfg file.
Creating TESTENV/lib/python2.7/distutils
Writing TESTENV/lib/python2.7/distutils/__init__.py
Writing TESTENV/lib/python2.7/distutils/distutils.cfg
Using existing distribute egg: /Users/x/Library/Python/2.7/site-packages/virtualenv_support/distribute-0.6.27.tar.gz
Installing distribute...
  Running command /Users/x/TESTENV/bin/python -c "#!python
\"\"\"Bootstra... main(sys.argv[1:])
" -v --always-copy -U distribute
  Extracting in /var/folders/97/bds2slvx25s53xx1b_strvfs4xdq4b/T/tmpbqvjfq
  Now working in /var/folders/97/bds2slvx25s53xx1b_strvfs4xdq4b/T/tmpbqvjfq/distribute-0.6.27
  Installing Distribute
  running install
  Checking .pth file support in /Users/x/Library/Python/2.7/site-packages/
  /Users/x/TESTENV/bin/python -E -c pass
  TEST FAILED: /Users/x/Library/Python/2.7/site-packages/ does NOT support .pth files
  error: bad install directory or PYTHONPATH

  You are attempting to install a package to a directory that is not
  on PYTHONPATH and which Python does not read ".pth" files from.  The
  installation directory you specified (via --install-dir, --prefix, or
  the distutils default setting) was:

      /Users/x/Library/Python/2.7/site-packages/

  and your PYTHONPATH environment variable currently contains:

      ''

  Here are some of your options for correcting the problem:

  * You can choose a different installation directory, i.e., one that is
    on PYTHONPATH or supports .pth files

  * You can add the installation directory to the PYTHONPATH environment
    variable.  (It must then also be on PYTHONPATH whenever you run
    Python and want to use the package(s) you are installing.)

  * You can set up the installation directory to support ".pth" files by
    using one of the approaches described here:

    http://packages.python.org/distribute/easy_install.html#custom-installation-locations

  Please make the appropriate changes for your system and try again.
  Something went wrong during the installation.
  See the error message above.
...Installing distribute...done.
Installing existing pip-1.1.tar.gz distribution: /Users/x/Library/Python/2.7/site-packages/virtualenv_support/pip-1.1.tar.gz
Installing pip...
  Running command /Users/x/TESTENV/bin/python -x /Users/x/TESTENV/bin/easy_install /Users/x/Librar...pport/pip-1.1.tar.gz
  /Users/x/TESTENV/bin/python: can't open file '/Users/x/TESTENV/bin/easy_install': [Errno 2] No such file or directory
  Complete output from command /Users/x/TESTENV/bin/python -x /Users/x/TESTENV/bin/easy_install /Users/x/Librar...pport/pip-1.1.tar.gz:
  /Users/x/TESTENV/bin/python: can't open file '/Users/x/TESTENV/bin/easy_install': [Errno 2] No such file or directory
----------------------------------------
...Installing pip...done.
Traceback (most recent call last):
  File "/Users/x/bin/virtualenv", line 9, in <module>
    load_entry_point('virtualenv==1.7.2', 'console_scripts', 'virtualenv')()
  File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 942, in main
    never_download=options.never_download)
  File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 1054, in create_environment
    install_pip(py_executable, search_dirs=search_dirs, never_download=never_download)
  File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 654, in install_pip
    filter_stdout=_filter_setup)
  File "/Users/x/Library/Python/2.7/site-packages/virtualenv.py", line 1020, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /Users/x/TESTENV/bin/python -x /Users/x/TESTENV/bin/easy_install /Users/x/Librar...pport/pip-1.1.tar.gz failed with error code 2

したがって、virtualenvが構築しようとしている環境で、私のPYTHONPATHがどういうわけか空白になっているように見えます。それは簡単に修正できるはずですよね?

4

3 に答える 3

2

これはdistutilsの問題です。$ HOME / .pydistutils.cfgを削除し、実行sudo setup.py installsudo setup virtualenvて適切な場所に配布し、MacPortsバージョンのPython2.7の適切なsite-packagesディレクトリに配置しました。virtualenv TestEnvこれで問題なく実行できます。

于 2012-08-29T21:42:45.443 に答える
1

VPSと私のMacでcentosをセットアップするときに同じ問題に直面します。

私は解決策を見つけました。pipのインストール後にコードをエクスポートしないと、それが発生します。解決手順は次のとおりです。

コマンドラインを書く:which pip show:'/ usr / bin / pip'このようにコマンドラインでこのコードを実行します:export PATH = "/ usr / bin:$ PATH"

それがあなたにも役立つことを願っています

于 2016-05-10T04:54:34.620 に答える
0

私は自分の考えをテストしていないのでわかりません。

library at /x/lib/python2.x/site-packagesパッケージの次のコードは、とをインストールしますscripts at /x/bin

python setup.py install --prefix / x

だからあなたはしてはいけませんpython setup.py install --prefix /x/lib/python2.x/site-packages

pipまた、スクリプトを確認してみてください。スクリプトvirtualenvは正しいPythonバイナリを使用していますか。スクリプトのシバンはそれを教えてくれます。そうでない場合は、別のディストリビューションを使用している可能性があります。

#!/usr/local/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'pip==1.1','console_scripts','pip'
__requires__ = 'pip==1.1'
import sys
from pkg_resources import load_entry_point

sys.exit(
   load_entry_point('pip==1.1', 'console_scripts', 'pip')()
)

上記のスクリプトは、にバイナリが配置されているディストリビューションを参照してい/usr/local/bin/pythonます。

システムでは、Pythonの複数のディストリビューションを共存させることができます。

于 2012-08-28T19:55:52.403 に答える