python模块升级命令_升级Python2.7致使使用pip等命令安装模块失败

博客讲述了在Python使用过程中遇到的两个主要问题:一是Python编译时缺少SSL模块导致`URLError`,解决方法是重新编译Python并包含SSL模块;二是安装openssl时遇到错误,通过更换openssl版本成功解决;三是pip安装失败,原因是pip版本与Python版本不匹配,解决方式是使用新版本Python安装distribute然后通过easy_install安装pip。
摘要由CSDN通过智能技术生成

1.urllib2.URLError:

python 出现'module' object has no attribute 'HTTPSHandler' 错误,是由于你编译python的时候没有把ssl模块编译进去,从新编译安装python,并把ssl模块包含进去就能够了

cd python源码目录/Modules

vi Setup.dst

找到

# Socket module helper for SSL support; you must comment out the other

# socket line above, and possibly edit the SSL variable:

SSL=/usr/local/ssl

_ssl _ssl.c \

-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \

-L$(SSL)/lib -lssl -lcrypto python

而后从新make便可 curl

2.安装openssl错误

错误以下: socket

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

md5

-

x86_64

.

s

:

Assembler

messages

:

md5

-

x86_64

.

s

:

41

:

Error

:

0xd76aa478

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

50

:

Error

:

0xe8c7b756

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

68

:

Error

:

0xc1bdceee

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

77

:

Error

:

0xf57c0faf

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

95

:

Error

:

0xa8304613

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

104

:

Error

:

0xfd469501

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

122

:

Error

:

0x8b44f7af

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

131

:

Error

:

0xffff5bb1

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

140

:

Error

:

0x895cd7be

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

158

:

Error

:

0xfd987193

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

167

:

Error

:

0xa679438e

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

187

:

Error

:

0xf61e2562

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

196

:

Error

:

0xc040b340

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

214

:

Error

:

0xe9b6c7aa

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

223

:

Error

:

0xd62f105d

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

241

:

Error

:

0xd8a1e681

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

250

:

Error

:

0xe7d3fbc8

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

268

:

Error

:

0xc33707d6

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

277

:

Error

:

0xf4d50d87

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

295

:

Error

:

0xa9e3e905

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

304

:

Error

:

0xfcefa3f8

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

322

:

Error

:

0x8d2a4c8a

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

332

:

Error

:

0xfffa3942

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

340

:

Error

:

0x8771f681

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

356

:

Error

:

0xfde5380c

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

364

:

Error

:

0xa4beea44

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

380

:

Error

:

0xf6bb4b60

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

388

:

Error

:

0xbebfbc70

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

404

:

Error

:

0xeaa127fa

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

412

:

Error

:

0xd4ef3085

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

428

:

Error

:

0xd9d4d039

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

436

:

Error

:

0xe6db99e5

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

452

:

Error

:

0xc4ac5665

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

463

:

Error

:

0xf4292244

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

481

:

Error

:

0xab9423a7

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

490

:

Error

:

0xfc93a039

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

508

:

Error

:

0x8f0ccc92

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

517

:

Error

:

0xffeff47d

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

526

:

Error

:

0x85845dd1

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

544

:

Error

:

0xfe2ce6e0

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

553

:

Error

:

0xa3014314

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

571

:

Error

:

0xf7537e82

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

580

:

Error

:

0xbd3af235

out

range

of

signed

32bit

displacement

md5

-

x86_64

.

s

:

598

:

Error

:

0xeb86d391

out

range

of

signed

32bit

displacement

make

[

2

]

:

*

*

*

[

md5

-

x86_64

.

o

]

Error

1

make

[

2

]

:

Leaving

directory

`

/

software

/

script

/

openssl

-

0.9.8g

/

crypto

/

md5

'

make[1]: *** [subdirs] Error 1

make[1]: Leaving directory `/software/script/openssl-0.9.8g/crypto'

make

:

*

*

*

[

build_crypto

]

Error

1

坑爹的也谈不上有什么解法,这里我编译的是openssl-0.9.8g,死活编不过,后到openssl资料库去翻了会,想也没想换了个版本openssl-0.9.8n,顺利编过 网站

3.安装pip

报错以下: ui

1

2

3

4

5

# pip

Traceback

(

most

recent

call

last

)

:

File

"/usr/bin/pip"

,

line

5

,

in

<

module

>

from

pkg_resources

import

load_entry_point

ImportError

:

No

module

named

pkg_resources

其实发生这个问题是由于:虽然你已经把Python升级到了2.7版本,可是pip仍然是原来的,版本,仍然在原来python的site-package里面 url

CentOS5环境下,默认是python2.4,site-package在 spa

1

/

usr

/

lib

/

python2

.

4

/

site

-

packages

/

不少模块都被安装在这里。直接打pip,仍是使用的原来的pip。因此咱们的思路就是:应该在新的Python中安装pip,这样才不会报错。 ip

这个问题遇到的人不少,可是解决的太少了,网上都是抄来抄去,都解决不了问题。最后仍是在一外个国人的网站上找到了解决方案: md5

1

2

# curl -O http://python-distribute.org/distribute_setup.py

# /usr/local/pyton2.7/bin/python distribute_setup.py

使用新版本的python来运行这个脚本,这个会自动安装出来一个easy_install,而后使用这个新的easy_install来安装pip就能够了! ssl

1

2

3

# /usr/local/python/bin/easy_install pip

# /usr/local/python/bin/pip -V

pip

1.4.1

from

/

usr

/

local

/

python

/

lib

/

python2

.

7

/

site

-

packages

/

pip

-

1.4.1

-

py2

.

7.egg

(

python

2.7

)

安装生成的全部二进制文件,都是在你的PYTHON_HOME/bin/,由于个人是安装在/usr/local/python/,因此命令都在这里,之后再调用pip要使用绝对路径,或者作连接!

2.7的模块是在如下目录

1

/

usr

/

local

/

python

/

lib

/

python2

.

7

/

site

-

packages

/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值