[英]Can't pip install packages in python 3.6 due to ssl error
我正在使用遠程服務器。 當我嘗試在我的虛擬環境中使用pip安裝任何東西時,我收到一個錯誤:
(venv) [barta@bivoj program]$ pip install -r requirements.txt
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting joblib==0.11 (from -r requirements.txt (line 1))
Could not fetch URL https://pypi.python.org/simple/joblib/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
使用python 2.7一切正常。 我可以自己解決這個問題(我沒有root權限)或者我是否需要聯系管理員?
首先,當我在我的主文件夾中安裝python 3.6時,我遇到了這個問題。 我想問題可能是因為它在我的主文件夾中,所以我要求干凈安裝python 3.6。
我考慮更改setup.py並再次安裝在我的家中,如Claudio所示:
由於ssl模塊不可用,pip3安裝在虛擬環境中,python3.6失敗
但我沒有找到任何openssl文件夾。 / usr / bin中有openssl,但這不是目錄。 我搜索了ssl.h文件,但沒有在任何地方找到它。
聽起來你已經在沒有libssl-dev
存在的情況下從源代碼構建了python。
跑:
sudo apt-get install libssl-dev
sudo ./configure
sudo make altinstall
在Ubuntu 16.04 / 18.04中測試過
在Python-3.6.4 / Modules / Setup中取消注釋以下行:
# SSL=/usr/local/ssl
# _ssl _ssl.c \
# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
# -L$(SSL)/lib -lssl -lcrypto
然后重新編譯包:
$ sudo ./configure --enable-optimizations
$ sudo make altinstall
還要確保安裝了libssl-dev
(這是debian的包,無論如何)。
這也適用於Python-3.7.x.
我得到了同樣的錯誤,但實際上我使用最新版本的python2.7.13創建了python環境 ,這個python版本是通過源安裝的:
./configure --prefix /usr/bin/python2.7.13
make altinstall
然后創建virtualenv :
virtualenv --python=/usr/bin/python2.7.13/bin/python2.7 py2.7.13env
花了很多時間后,我發現一個名為libreadline6-dev
庫丟失了。 所以安裝它:
sudo apt-get install libreadline6-dev
並重復編譯和make安裝步驟,如上所述,並再次創建虛擬環境。 這次一切都很好!
這就是我做的:
sudo apt-get install libssl-dev
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
tar -xvf Python-3.6.5.tgz
cd Python-3.6.5/
./configure
sudo make
sudo make install
如果這是Windows,則需要安裝OpenSSL https://slproweb.com/products/Win32OpenSSL.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.