簡體   English   中英

通過“ pip install --upgrade”升級pip和scrapy后的pip錯誤

[英]pip error after upgrading pip & scrapy by “pip install --upgrade”

在python 2.7.9中使用debian 8(jessie)amd64。 我嘗試了以下命令:

pip install --upgrade pip

pip install --upgrade scrapy

之后,我得到以下點子錯誤

root@debian:~# pip
Traceback (most recent call last):
File "/usr/local/bin/pip", line 11, in <module>
load_entry_point('pip==8.1.2', 'console_scripts', 'pip')()
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 567, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2604, in load_entry_point
return ep.load()
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2264, in load
return self.resolve()
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2270, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/usr/local/lib/python2.7/dist-packages/pip/__init__.py", line 16, in <module>
from pip.vcs import git, mercurial, subversion, bazaar  # noqa
File "/usr/local/lib/python2.7/dist-packages/pip/vcs/mercurial.py", line 9, in <module>
from pip.download import path_to_url
File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 39, in <module>
from pip._vendor import requests, six
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/__init__.py", line 53, in <module>
from .packages.urllib3.contrib import pyopenssl
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/contrib/pyopenssl.py", line 54, in <module>
import OpenSSL.SSL
File "/usr/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
from OpenSSL import rand, crypto, SSL
File "/usr/lib/python2.7/dist-packages/OpenSSL/rand.py", line 11, in <module>
from OpenSSL._util import (
File "/usr/lib/python2.7/dist-packages/OpenSSL/_util.py", line 4, in <module>
binding = Binding()
File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 89, in __init__
self._ensure_ffi_initialized()
File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 113, in _ensure_ffi_initialized
libraries=libraries,
File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/utils.py", line 80, in build_ffi
extra_link_args=extra_link_args,
File "/usr/local/lib/python2.7/dist-packages/cffi/api.py", line 437, in verify
lib = self.verifier.load_library()
File "/usr/local/lib/python2.7/dist-packages/cffi/verifier.py", line 114, in load_library
return self._load_library()
File "/usr/local/lib/python2.7/dist-packages/cffi/verifier.py", line 225, in _load_library
return self._vengine.load_library()
File "/usr/local/lib/python2.7/dist-packages/cffi/vengine_cpy.py", line 174, in load_library
lst = list(map(self.ffi._get_cached_btype, lst))
File "/usr/local/lib/python2.7/dist-packages/cffi/api.py", line 409, in _get_cached_btype
BType = type.get_cached_btype(self, finishlist)
File "/usr/local/lib/python2.7/dist-packages/cffi/model.py", line 61, in get_cached_btype
BType = self.build_backend_type(ffi, finishlist)
File "/usr/local/lib/python2.7/dist-packages/cffi/model.py", line 507, in build_backend_type
base_btype = self.build_baseinttype(ffi, finishlist)
File "/usr/local/lib/python2.7/dist-packages/cffi/model.py", line 525, in build_baseinttype
% self._get_c_name())
cffi.api.CDefError: 'point_conversion_form_t' has no values explicitly defined: refusing to guess which integer type it is meant to be (unsigned/signed, int/long)

谷歌搜索幾個類似的問題,CFFI或加密可能會導致此問題,但我找不到任何明確的方法來解決它。

今天遇到了完全相同的錯誤,但情況有所不同。 我懷疑這與cryptography模塊有關。

幫助我的是安裝特定版本的cffi軟件包:

pip install cffi==1.7.0 

我刪除了cffi並嘗試使用此命令來安裝cffi 1.7.0:

pip install cffi==1.7.0

它奏效了,謝謝你,alecxe和moeseth :)

我的情況就像@alecxe

這有效:

pip install cffi==1.7.0

遇到了與moeseth相同的問題:當所有pip命令都拋出原始異常時, pip install something答案幾乎沒有用。 安裝cffi 1.7.0版也解決了這個問題,這就是我在Debian Jessie中設法不依賴pip的方法:

  1. 將測試存儲庫臨時添加到/etc/apt/sources.list ,例如,

     deb http://ftp.fi.debian.org/debian/ testing main contrib non-free deb-src http://ftp.fi.debian.org/debian/ testing main contrib non-free 
  2. 運行sudo apt-get update

  3. 使用aptitude或apt-get將python-cffipython-cffi-backend升級到1.7.0版
  4. /etc/apt/sources.list刪除在步驟1中添加的行,然后運行sudo apt-get update

所以我當時處於pip失敗的情況。 我必須刪除python-cffi ,然后使用正確的版本從pip安裝它

sudo apt-get remove python-cffi
pip install cffi==1.7.0

奇跡般有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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