python 中有一个 websocket 和 websocket-client,用法都是 import websocket
。
现在有一个需求是判断 websocket-client 是否安装,有没有 identity 可以判断到底是 websocket-client 还是 websocket?
分分分分分分分分分分分割线线线线线线线线线线线线
另外,有个这样的需求..
try:
xxx
except (websocket.WebSocketException, sock.error, urllib.xxxx) as e:
xxx
当 websocket 库不存在的时候如何保证不报错,当安装的时候可以 websocket.WebSocketException 这个错误?最好的保持上述结构,因为结构实在是很难变动的...(好几百行orz)
1
mikangchan 2015-03-24 22:03:45 +08:00
前排跪舔/w\
|
2
geeklian 2015-03-24 22:07:02 +08:00
两个库名字一样=.=
不是子集的关系,那就是违规了吧? |
3
est 2015-03-24 22:11:39 +08:00 1
try:
import websocket websocket.特别的method except: exit('木有安装') |
5
tidewind 2015-03-24 22:27:53 +08:00
print websocket.__name__试试呢
|
7
Septembers 2015-03-24 22:57:39 +08:00 1
print(map(lambda x: getattr(x, 'project_name'), pkg_resources.require('websocket')))
see https://stackoverflow.com/questions/2058802 |
8
scys 2015-03-25 00:08:22 +08:00
将库下载下来,直接修改名字,然后再import~
|
9
Septembers 2015-03-25 00:14:18 +08:00
@scys 客户环境/生产环境 不是想动就能动的
|
10
22too 2015-03-25 01:03:50 +08:00
难道不能as 吗??
import websocket as web |
12
yegle 2015-03-25 01:40:57 +08:00
判断 websocket-client 是否安装
这个活读取pip freeze的输出不行吗?或者 from pip install get_installed_distributions |
13
RickGray 2015-03-25 07:24:55 +08:00 via iPhone
查看 __doc__ :)
|
15
Melodic 2015-03-25 15:25:54 +08:00
楼主看上去好面善
|
17
Madimo 2015-03-26 17:09:51 +08:00 via iPhone
难道不是自己写个工厂类再封装一层就可以了么...
|