在os x上有一个奇怪的问题.
据我所知(并快速查看我的.bash_history似乎证实)我没有对我的配置进行任何近期更改.唉,pip命令似乎突然使用了不同于以前的python版本.到目前为止,我使用命令pip来管理我的python2库,使用pip3来管理python3库.突然,任何运行pip安装的尝试都会失败,并且会出现错误,例如缺少print语句的括号.
以下是我试图找出问题的一些命令的结果:
which pip > /usr/local/bin/pip
which pip3 > /usr/local/bin/pip3
which python > /usr/local/bin/python
python version > Python 2.7.11
pip --version > pip 8.1.1 from /usr/local/lib/python3.5/site-packages (python 3.5)
Run Code Online (Sandbox Code Playgroud)
所以出于某种原因,pip命令似乎是从PyPi2数据库运行但现在在python3中运行?任何想法如何解决这一问题?
小智 18
我运行多个Python版本,因此也有多个pip版本.
但是,每次更新pip时,都会将标准pip命令替换为您更新的版本.因此,甚至pip3 install --upgrade pip会/usr/local/bin/pip在你的系统中放入一个搞乱Python 2版本的东西.
相反,我将pip作为(可执行)模块运行:
python3 -m pip search <package>
Run Code Online (Sandbox Code Playgroud)
要么
python2 -m pip search <package>
Run Code Online (Sandbox Code Playgroud)
甚至
python3.5 -m pip search <package>
Run Code Online (Sandbox Code Playgroud)
这可以保证您的pip版本始终与您要使用它的Python版本相匹配.键入的时间稍长,但我更喜欢它的明确性(我猜,它遵循Python的禅宗).
请注意更新pip:
python3.5 -m pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)
仍然会安装Python 3.5版本/usr/local/bin/pip,但我只是忽略了这一点.只要注意pip直接执行的(shell)脚本.
找到你想使用的 Python 的绝对路径:
which python
Run Code Online (Sandbox Code Playgroud)
打开默认的 pip 可执行脚本:
vi $(which pip)
Run Code Online (Sandbox Code Playgroud)
你会在顶部看到一条 shebang 线,它可能指向错误的 Python(我也有过一次)。
指向您想要的 Python(参见步骤 1),例如:
#!/usr/local/bin/python3.7
Run Code Online (Sandbox Code Playgroud)
尝试通过在终端中运行以下命令来设置别名,
alias pip="/usr/local/bin/pip"
alias pip2="/usr/local/bin/pip"
alias pip3="/usr/local/bin/pip3"
Run Code Online (Sandbox Code Playgroud)
如果这解决了您的问题,那么您需要在 bash 配置文件中添加别名。查看如何创建 Bash 别名?了解更多信息。
或者,您必须python2 get-pip.py先使用 pip 重新安装,然后python3 get-pip.py可以在此处下载 get-pip.py https://bootstrap.pypa.io/get-pip.py
| 归档时间: |
|
| 查看次数: |
16740 次 |
| 最近记录: |