Answers:
numpy和scipy在当前所有受支持的Ubuntu版本的默认存储库中。要为Python 3.x安装numpy和scipy,请打开终端并输入:
sudo apt update
sudo apt install python3-numpy python3-scipy
对于Python 2.x,它是:
sudo apt update
sudo apt install --no-install-recommends python2.7-minimal python2.7 # this line is only necessary for Ubuntu 17.10 and later
sudo apt install python-numpy python-scipy
使用python -m pip install
代替pip install
例:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
pip
升级后,我开始出现此问题:
pip install --upgrade --user pip
该pip
(相应地pip3
)执行是由你的发行版(提供python-pip
包在Ubuntu 16.04)。
因此,pip
在升级pip时,它不会与软件包本身保持最新状态,并且可能会损坏。
如果您只是python -m pip
直接使用,例如:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
它会通过您的Python路径,找到最新版本的pip,然后执行该文件。
它依赖于该文件是可执行文件的事实,但这是一种非常标准的接口类型,因此比骇客的Debian脚本破坏的可能性小。
然后,我建议将以下别名添加到您的.bashrc
:
pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )
Ubuntu 18.04 /usr/bin/pip3
文件执行以下操作:
from pip import main
大概main
是pip
在某个时候被打破的
中断的pip提交似乎是:95bcf8c5f6394298035a7332c441868f3b0169f4“将所有内部API移至pip._internal”已进入pip 18.0。
从pip3
9.0.1升级到18.0 后,在Ubuntu 16.04中进行了测试。
en
但是,最终,对于认真的Python开发,我只建议您使用pyenv + virtualenv安装自己的本地Python,这也可以解决Ubuntu的错误:如何使用apt-get安装其他Python版本?
/usr/bin/pip
是由Ubuntu Python包提供的,pip
不会覆盖它。但是,它pip update
是由pip
自己管理的,并且避免接触Ubuntu文件。
Debian
-注释编写: Run the main entry point, similarly to how setuptools does it, but because we didn't install the actual entry point from setup.py, don't use the pkg_resources API.
也许有一种方法可以以python方式正确安装Python。
/usr/bin/pip
:-)
该错误位于pip 10.0.0中。
在Linux中,您需要从以下位置修改文件:/ usr / bin / pip:
from pip import main
if __name__ == '__main__':
sys.exit(main())
对此:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
pip
。
我遇到了同样的问题,但是使用apt和pip卸载并重新安装对我来说不起作用。
我看到了另一个解决方案,它提供了一种恢复pip3路径的简便方法:
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
从apt和pip本身安装pip可能会导致这种情况。
就我而言,我使用Ubuntu的pip软件包安装pipenv,然后安装了较新的pip副本。现在,由于我的外壳程序运行Ubuntu的pip 9脚本(以验证run which pip3
),然后我的Python解释器导入pip 10模块,因此pip3命令失败。所以我想卸载两者之一。
公平地假设您有新点子是有原因的。在这种情况下,您想像这样卸载旧的点:
sudo apt remove python3-pip
如果您确定对较旧的pip感到满意,并且希望使用系统软件包,则可以卸载较新的软件包:
~/.local/bin/pip3 uninstall pip
或失败
sudo /usr/local/bin/pip3 uninstall pip
我的问题最终是python3.6和3.7之间的不匹配。/usr/bin/python3 -> /usr/bin/python3.6
即使系统已升级到python3.7 ,python3.6的安装也会插入一个链接。
sudo apt purge python-pip
sudo apt purge python3-pip
sudo apt install python3.7 --reinstall
cd /usr/bin
sudo rm python3
sudo ln -s python3.7 python3
python3 --version
pip3 --version