pip error:尝试在OS X上运行'pip install ...'时解释错误

时间:2015-09-30 04:46:08

标签: python macos pip virtualenv homebrew

我正在尝试安装virtualenv的新版本(python存储在sys.executable中的路径存在一些问题),事实证明存在另一个实际上似乎相关的问题。

当我尝试运行pip install virtualenv时,我得到了这个输出:

-bash: /usr/local/Cellar/python/2.7.10_2/bin/pip: /usr/local/opt/python3/bin/python3.4: 
bad interpreter: No such file or directory

现在我重新安装virtualenv的原始观点是,当我运行virtualenv venv时,我一直收到此错误

Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 2363, in <module>
    main()
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 832, in main
    symlink=options.symlink)
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 994, in create_environment
    site_packages=site_packages, clear=clear, symlink=symlink))
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 1288, in install_python
    shutil.copyfile(executable, py_executable)
  File "/usr/local/Cellar/python3/3.4.3_2/Frameworks/Python.framework/Versions/3.4/lib/python3.4/shutil.py", line 108, in copyfile
    with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/opt/python3/bin/python3.4'

作为一个可能相关的旁注,而不是使用默认安装的python3,我酿造了一个带有brewed openssl的python3(一个应用程序需要它)并将brewed python3的路径放在我{{{ 1}}。

我试图多次安装和卸载python而没有任何成功,完全不知道问题是什么。任何方向都将不胜感激。

修改 在@cel的建议之后,我发现我的pip文件的头部(位于/etc/paths)被设置为硬编码python版本/usr/local/Cellar/python/2.7.10_2/bin/pip。我将其更改为#!/usr/local/opt/python3/bin/python3.4的输出which python

这让我再次成功地创造了一个虚拟世界。谢谢!

1 个答案:

答案 0 :(得分:3)

当我使用HomeBrew将我的python从3.5.2版升级到3.6.0版时,我遇到了类似的问题。 HomeBrew将符号链接/usr/local/bin/pip3更新为/usr/local/Cellar/python3/3.6.0/bin/pip3,但我的/usr/local/bin/pip仍在使用旧脚本,它指向/usr/local/opt/python3/bin/python3.5处的python解释器。

我的行动如下:

  1. 取消关联/usr/local/bin/pip并将其更新为点/usr/local/Cellar/python3/3.6.0/bin/pip3

  2. 创建了一个指向/usr/local/bin/pip3.5的新符号链接/usr/local/Cellar/python3/3.5.2/bin/pip3,并更新了pip3.5脚本的标题,指向/usr/local/Cellar/python3/3.5.2/bin/python3.5

    的python解释器LI>
  3. 遵循virtualenv

  4. 的相同程序

    P.S。最初我没有遇到virtualenv的问题,因为我使用的是-p选项。