簡體   English   中英

由於ssl錯誤,無法在python 3.6中pip安裝包

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM