pip error: Bad interpreter when trying to run 'pip install ...' on OS X
pip error: Bad interpreter when trying to run 'pip install ...' on OS X
我正在尝试安装新版本的 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(应用程序需要它)brew-installed python3 并将在我的 /etc/paths
顶部酿造 python3 的路径。
我已经尝试安装和卸载 python 多次,但都没有成功,我完全不知道问题出在哪里。任何方向将不胜感激。
编辑
在@cel 的建议之后,我的 pip 文件的头部(位于 /usr/local/Cellar/python/2.7.10_2/bin/pip
)被设置为硬编码 python 版本,因此 #!/usr/local/opt/python3/bin/python3.4
。我将其更改为 which python
的输出,即 /usr/local/Cellar/python/2.7.10_2/bin/python
这让我再次成功创建了一个 virtualenv。谢谢!
我在使用 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
.[=22 处的 python 解释器=]
我的做法如下:
取消链接 /usr/local/bin/pip
并将其更新为指向 /usr/local/Cellar/python3/3.6.0/bin/pip3
。
创建了一个指向 /usr/local/Cellar/python3/3.5.2/bin/pip3
的新符号链接 /usr/local/bin/pip3.5
并更新了 pip3.5 脚本的 header 以指向 python 解释器在 /usr/local/Cellar/python3/3.5.2/bin/python3.5
对 virtualenv
进行了相同的操作。
P.S。最初我在使用 virtualenv
时没有遇到这个问题,因为我将它与 -p
选项一起使用。
我正在尝试安装新版本的 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(应用程序需要它)brew-installed python3 并将在我的 /etc/paths
顶部酿造 python3 的路径。
我已经尝试安装和卸载 python 多次,但都没有成功,我完全不知道问题出在哪里。任何方向将不胜感激。
编辑
在@cel 的建议之后,我的 pip 文件的头部(位于 /usr/local/Cellar/python/2.7.10_2/bin/pip
)被设置为硬编码 python 版本,因此 #!/usr/local/opt/python3/bin/python3.4
。我将其更改为 which python
的输出,即 /usr/local/Cellar/python/2.7.10_2/bin/python
这让我再次成功创建了一个 virtualenv。谢谢!
我在使用 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
.[=22 处的 python 解释器=]
我的做法如下:
取消链接
/usr/local/bin/pip
并将其更新为指向/usr/local/Cellar/python3/3.6.0/bin/pip3
。创建了一个指向
/usr/local/Cellar/python3/3.5.2/bin/pip3
的新符号链接/usr/local/bin/pip3.5
并更新了 pip3.5 脚本的 header 以指向 python 解释器在/usr/local/Cellar/python3/3.5.2/bin/python3.5
对
virtualenv
进行了相同的操作。
P.S。最初我在使用 virtualenv
时没有遇到这个问题,因为我将它与 -p
选项一起使用。