问题
尝试在Zorin OS(基于Ubuntu 16)上从源代码安装Python-3.11.1,当我尝试将任何包pip安装到新创建的venv时,我得到了以下错误:
python3.11 -m venv venv
source venv/bin/active
pip install numpy
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
WARNING: 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/
WARNING: Retrying (Retry(total=3, 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/
WARNING: Retrying (Retry(total=2, 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/
WARNING: Retrying (Retry(total=1, 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/
WARNING: Retrying (Retry(total=0, 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/
Could not fetch URL https://pypi.org/simple/numpy/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/numpy/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
ERROR: Could not find a version that satisfies the requirement numpy (from versions: none)
ERROR: No matching distribution found for numpy
很明显,SSL包似乎丢失了,但是我确保在安装python之前安装了openssl
和libssl-dev
,更具体地说,我确保安装了所有的包lined out here。
我安装的确切步骤
1.确保安装了所需的所有软件包(上述一项)
cd .../python-installs
1.从python.org下载Pythontar -xvzf Python-3.11.1.tgz
cd Python-3.11.1
然后
./configure \
--prefix=/opt/python/3.11.1 \
--enable-shared \
--enable-optimizations \
--enable-ipv6 \
--with-openssl=/usr/lib/ssl \
--with-openssl-rpath=auto \
LDFLAGS=-Wl,-rpath=/opt/python/3.11.1/lib,--disable-new-dtags
make
〈-注意,我在这里从gcc得到了很多错误消息,与this非常相似,但它似乎在最后是成功的make altinstall
此安装过程的部分内容来自1(https://docs.posit.co/resources/install-python-source/),[2]
运行python3.11
看起来工作正常,但是我不能pip安装任何东西到由Python3.11.1创建的venv中。
其他可能的错误源
在尝试重新安装Python3.11.1之前,我总是确保删除以下位置中与Python3.11.1关联的所有文件:
/usr/local/bin/...
/usr/local/lib/...
/usr/local/man/man1/...
/usr/local/share/man/man1/...
/usr/local/lib/pkgconfig/...
/opt/python/...
我还尝试将Python-3.11.1添加到PATH中
PATH=/opt/python/3.11.1/bin:$PATH
到/etc/profile.d/python.sh
,但在我的情况下似乎没有多大作用。
当配置python文件夹时,我使用--with-openssl=/usr/lib/ssl
,尽管我可能需要使用其他的东西,我尝试了--with-openssl=/usr/bin/openssl
,但它不起作用,因为openssl
是一个文件而不是一个文件夹,它给我一个错误消息,甚至没有配置任何东西。
结论
通过我的研究,我发现大多数时候这个错误与openssl
库没有安装有关(假设python版本〉= 3.10需要安装它),安装它并重新安装python似乎可以解决这个问题,但是在我的例子中却没有,我不知道为什么。
最可能的原因是我的openssl
配置出了问题,但我不知道是什么问题。
任何帮助都将不胜感激。
1条答案
按热度按时间2w3kk1z51#
经过更多的研究,我意识到我没有安装
libbz2-dev
,这显然是第一件事,一个人应该检查,如果他们得到以上的错误,但哦好吧。对于任何人谁仍然发现自己的挣扎,这里是我的完整步骤,我采取了:1.确保安装了以下库
cd .../python-installs
1.从python.org下载目标Python版本作为Gzipped tar ball
tar -xvzf Python-3.11.1.tgz
sudo mkdir opt/python
sudo mkdir opt/python/3.11.1
cd Python-3.11.1
然后make
〈-注意,我仍然从gcc得到很多错误消息,也得到always_inline not in line
错误消息sudo make altinstall
1.将
PATH=/opt/python/3.11.1/bin:$PATH
添加到文件/etc/profile.d/python.sh
然后,为了测试错误是否消失,可以例如测试:
python3.11 -m venv venv
source venv/bin/active
pip install pandas
python3.11
import pandas
exit()
如果没有错误,那么一切都解决了。显然,版本需要更改为您的实际目标版本。
注解
如果你新安装的python版本没有出现在终端中,可能是因为文件
/etc/profile.d/python.sh
已经存在,路径指向python版本(例如,如果你必须安装它多次)。在这种情况下,删除文件(或至少是目标版本的路径),然后重新创建它。重新启动后,它应该出现在终端中。