$ sudo pip install numpy # or anything else
错误:
The directory '/home/user/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. (tried sudo -H, the rest errors persist)
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting numpy
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/numpy/
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
$ python -V
Python 3.7.3
$ pip -V
pip 19.0.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
$ whereis pip
pip: /usr/local/bin/pip2.7 /usr/local/bin/pip3.7 /usr/local/bin/pip /usr/local/bin/pip3.6
pip3.6 出现在:
$ sudo su
$ update-alternatives --install /usr/bin/python python /usr/bin/python3 1
在 anaconda 环境中,pip 工作正常。
以安全的方式删除与 python 相关的东西——不破坏系统,并正确地重新安装东西,是一个更可取的解决方案吗?以及如何做到这一点?
我知道有很多类似的问题,但是我尝试了很多东西(显然,我搞砸了一些东西)并且我没有解决问题。
谢谢!
1-避免在
sudo
不需要时使用。2-由于您使用的是 Python3,因此在 Python3 中安装包的适当方法是使用 pip3。
所以命令如下:
pip3 install --user <package_name>
其中:pip3
适用于 Python3。install
使用 pip3 安装软件包。--user
将下载的包保存在当前用户目录中(因此您不需要更多权限)。package_name
任何 Python 包。编辑:
1. 为 Python 和 ssl 安装必要的包:
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
从https://www.python.org/ftp/python/下载“Python-3.7.0.tar.xz”并将其解压缩到您的主目录中。
在该目录中打开终端并运行:
./configure
构建和安装:
sudo make && sudo make install
安装软件包:
pip3 install package_name