在Mac OS X上运行Virtualenv时出现问题

15

我在Mac OS X 10.6.2上使用virtualenv-1.4.5和Python 2.6。当我尝试运行一个虚拟环境时,会出现以下情况...

 Mac-Pro:pylonsdev paul$ virtualenv --no-site-packages -v trythis
Creating trythis/lib/python2.6
Symlinking Python bootstrap modules
  Symlinking trythis/lib/python2.6/_abcoll.pyc
  Symlinking trythis/lib/python2.6/_abcoll.pyo
  Symlinking trythis/lib/python2.6/abc.pyc
  Symlinking trythis/lib/python2.6/abc.pyo
  Symlinking trythis/lib/python2.6/codecs.pyc
  Symlinking trythis/lib/python2.6/codecs.pyo
  Symlinking trythis/lib/python2.6/config
  Symlinking trythis/lib/python2.6/copy_reg.pyc
  Symlinking trythis/lib/python2.6/copy_reg.pyo
  Symlinking trythis/lib/python2.6/encodings
  Symlinking trythis/lib/python2.6/fnmatch.pyc
  Symlinking trythis/lib/python2.6/fnmatch.pyo
  Symlinking trythis/lib/python2.6/genericpath.pyc
  Symlinking trythis/lib/python2.6/genericpath.pyo
  Symlinking trythis/lib/python2.6/lib-dynload
  Symlinking trythis/lib/python2.6/linecache.pyc
  Symlinking trythis/lib/python2.6/linecache.pyo
  Symlinking trythis/lib/python2.6/locale.pyc
  Symlinking trythis/lib/python2.6/locale.pyo
  Symlinking trythis/lib/python2.6/ntpath.pyc
  Symlinking trythis/lib/python2.6/ntpath.pyo
  Symlinking trythis/lib/python2.6/os.pyc
  Symlinking trythis/lib/python2.6/os.pyo
  Symlinking trythis/lib/python2.6/posixpath.pyc
  Symlinking trythis/lib/python2.6/posixpath.pyo
  Symlinking trythis/lib/python2.6/re.pyc
  Symlinking trythis/lib/python2.6/re.pyo
  Symlinking trythis/lib/python2.6/sre.pyc
  Symlinking trythis/lib/python2.6/sre.pyo
  Symlinking trythis/lib/python2.6/sre_compile.pyc
  Symlinking trythis/lib/python2.6/sre_compile.pyo
  Symlinking trythis/lib/python2.6/sre_constants.pyc
  Symlinking trythis/lib/python2.6/sre_constants.pyo
  Symlinking trythis/lib/python2.6/sre_parse.pyc
  Symlinking trythis/lib/python2.6/sre_parse.pyo
  Symlinking trythis/lib/python2.6/stat.pyc
  Symlinking trythis/lib/python2.6/stat.pyo
  Symlinking trythis/lib/python2.6/types.pyc
  Symlinking trythis/lib/python2.6/types.pyo
  Symlinking trythis/lib/python2.6/UserDict.pyc
  Symlinking trythis/lib/python2.6/UserDict.pyo
  Symlinking trythis/lib/python2.6/warnings.pyc
  Symlinking trythis/lib/python2.6/warnings.pyo
Creating trythis/lib/python2.6/site-packages
Writing trythis/lib/python2.6/site.py
Writing trythis/lib/python2.6/orig-prefix.txt
Writing trythis/lib/python2.6/no-global-site-packages.txt
Creating parent directories for trythis/include
Symlinking trythis/include/python2.6
Creating trythis/bin
New python executable in trythis/bin/python
Changed mode of trythis/bin/python to 0755
Symlinking trythis/.Python
Error [Errno 2] No such file or directory while executing command install_name_tool -change /System/Library/Frameworks/Pyt...ython @executable_path/../.Python trythis/bin/python
Could not call install_name_tool -- you must have Apple's development tools installed
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 8, in <module>
    load_entry_point('virtualenv==1.4.5', 'console_scripts', 'virtualenv')()
  File "/Library/Python/2.6/site-packages/virtualenv-1.4.5-py2.6.egg/virtualenv.py", line 529, in main
    use_distribute=options.use_distribute)
  File "/Library/Python/2.6/site-packages/virtualenv-1.4.5-py2.6.egg/virtualenv.py", line 612, in create_environment
    site_packages=site_packages, clear=clear))
  File "/Library/Python/2.6/site-packages/virtualenv-1.4.5-py2.6.egg/virtualenv.py", line 806, in install_python
    py_executable])
  File "/Library/Python/2.6/site-packages/virtualenv-1.4.5-py2.6.egg/virtualenv.py", line 557, in call_subprocess
    cwd=cwd, env=env)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 595, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 1106, in _execute_child
OSError: [Errno 2] No such file or directory

有什么建议可以解决这个错误吗?

7个回答

24

您只需要安装Xcode“命令行工具”,有两种方法可以实现:

1. 如果您已经安装了Xcode,请前往“偏好设置”->“下载”,然后选择“命令行工具”。

2. 从https://developer.apple.com/downloads下载“Xcode命令行工具”。.dmg”进行安装。

您可以使用App Store安装Xcode,但默认情况下不会包含“命令行工具”。


这适用于virtualenv和开箱即用的OS X Lion。谢谢! - Joe Mornin
2
是的,非常正确。我在从Snow Leopard升级到Lion后也遇到了这个问题。 - markdsievers

12

从应用商店安装XCode以解决问题。我遇到了同样的错误,安装了XCode,在安装后运行,现在virtualenv能够正常工作。


1
点赞。我去了AppStore,花了5美元下载了它(因为一开始还是不行,后来发现我还没运行安装程序,真蠢)。之后就完美地工作了。 - Robert Neville
1
+1 没错... 升级到 Lion 后,我不得不重新安装 Xcode 来解决这个问题。 - Aaron
我刚刚升级到Lion,也遇到了这个错误。我会升级我的Xcode并看看会发生什么! - Arthur Neves

4

好的,错误信息包含以下内容:

你必须安装苹果的开发工具

你有吗?它们在随OSX一起附带的单独的XCode光盘上。


1
代码显示您尚未安装Xcode,但您说您已经安装了。在命令行中输入which install_name_tool会显示什么?它应该是install_name_tool -> install_name_tool == /usr/bin/install_name_tool。 - mmmmmm

3

我在更新的Max OSX Lion安装了XCode后,尝试运行virtualenv时遇到了相同的错误消息。

然而:Mark在2010年3月1日提到:

代码显示您没有安装Xcode,但是您说您已经安装了。在命令行中输入which install_name_tool会有什么输出?它应该是install_name_tool -> install_name_tool == /usr/bin/install_name_tool

我遇到了同样的问题。我在Lion(10.7.2)上安装了最新的Xcode。

 $ locate install_name_tool
 /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/install_name_tool
 /Developer/usr/bin/install_name_tool
 /Developer/usr/share/man/man1/install_name_tool.1

我使用以下命令将/Developer/usr/bin中的文件链接到了/usr/bin中:
 $ sudo ln -s /Developer/usr/bin/install_name_tool /usr/bin/install_name_tool

输入“which”命令会产生以下结果:
 $ which install_name_tool
 /usr/bin/install_name_tool

之后我执行了 virtualenv 魔法

$ virtualenv -p python2.6 myvirtenv
Running virtualenv with interpreter /opt/local/bin/python2.6
New python executable in myvirtenv/bin/python
Installing setuptools............................done.
Installing pip...............done.

1

10.6上virtualenv也存在一个漏洞,详情可见virtualenv的bitbucket上的票。即使您解决了您遇到的问题,您仍然会遇到另一个问题(我认为是Python.framework找不到图像,但我不记得了 - 我在遇到这个问题时没有做任何笔记)

我对此进行了一些调查,并希望通过Python 2.7解决根本问题-当然人们知道它,并提交了一个修补程序来修复CPython。

然而,似乎有些人在10.6.2和virtualenv 1.4.5上取得了好的结果...或者不再使用系统Python(macports,手动编译)。


URL已经失效:“此存储库未启用问题跟踪。”这可能是在GitHub上的票证?https://github.com/pypa/virtualenv/issues/50 - Andrew B.

1

使用@gregglind的virtualenv分支,可以解决这个问题。我在这里回答了同样的问题:mac osx: unable to use virtualenv

git clone https://github.com/gregglind/virtualenv.git
cd virtualenv
git checkout feature/install_name_tool
sudo python setup.py install

0

将install_name_tool添加到您的路径中

导出PATH=$PATH:/Developer/usr/bin


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接