面对 Python 的强大和难用性表示深深的迷茫,莫非打开方式不对?

2019-04-15 11:26:03 +08:00
 nfroot
目测 python 也算是极好的语言了,目前各方面也妥妥的了,跨平台也不差了(瞎猜的)

但是一直不敢去拿别人的 python 来用,因为对这个语言是门外汉(会 asp,会点 php,会点 js,会 vb 系),所以深深的体会到难用性太强大了。多次找到所谓“合适的 py 文件”想直接拿来用。都失败了。

但是最近又在 github 刚好找到合适的代码,忍不住想尝试一下。
https://github.com/qubitstream/phpmyadmin_sql_backup

目测是在 linux 下运行的,不死心啊,快速翻看了一下代码,没看到写死了什么路径,心大的觉得如果库都有,windows 应该可以跑吧。

咦,人家还是很好心的写了基本信息,支持 windows

It has been tested with Python 3.4+ on Linux and Windows and phpMyAdmin 4.3.6, 4.5.4.1 and 4.7.0-dev



下载最新 python 安装,成功
执行 py 文件,并按帮助给予了相应的参数,然而……缺少库,于是
缺 grab
pip 安装 grab,成功
缺 xxx...
pip 安装 xxx....,成功

继续继续。
python 已经停止了运行。
我忍,我有狗,继续放狗。
哦哦原来是要给 python 把防火墙给开放了。
OK。
继续运行!
ModuleNotFoundError
缺了 1xml

pip 安装 1xml,成功

还有一步是要 pycurl 的(应该是在 1xml 之前),pip 安装不成功
不成功????
于是放狗搜去。
哦哦哦,原来要去库的官网下载 whl 文件,手动 pip 安装。
想了半天楞是没想明白这是个啥意思,你都 pip 可以手动安装了,咋就不能自动呢。

于是下吧,眼睁睁的看着一堆,找了个像样子的下下来。
pip d:\xxx.whl
安装失败 0 0。。。。

啥玩意这是,继续放狗。
哦哦,原来 cp36 是对应 python3.6x ,我要选 cp37 的。
安装成功

继续运行这个 py 文件
xxx 超时
莫非是漏了什么文件没给防火墙白名单,看到 python 目录有个 curl.exe 是刚才编译的,白名单走起。
再运行
python 停止了运行
我忍。
想想 python 应该带了个 IDE 才对,开始菜单打开 IDLE,开启 debug,执行脚本,debug 面板点 go。
哦哦,运行正常,显示了 py 文件提供的帮助
继续放狗,如何带参数调试,
找到了

sys.argv =[sys.argv[0],'http://xxx.com:3313/mysql/','myusername','mypassword','--http-auth','myusername:mypassword']

然而。。

Error: ('Resolving timed out after 3013 milliseconds', error(28, 'Resolving timed out after 3013 milliseconds'))


看了看 debug 面板,一脸懵逼。看了看进程,对应进程的路径开了防火墙白名单啊。
真的无解了,按说是超时,那应该可以抓包看看,但是真的不想折腾了。python 我还是敬而远之吧。

我真的是被 Windows 惯坏了。asp 是这样的,一处编写,到处运行,php、vbs、vb 亦如是。python 不知道是怎么回事,之前也是好几次了(几年前的事情了),找到个不错的 py 写的东西,可能偏门了点吧,没人指导的情况下就没一次成功的。

权当门外汉的抱怨吧,不必嘲讽,只是真的不太理解为什么别人家的东西都是拿来用即可,到 python 这里反而行不通了。。。
8017 次点击
所在节点    Python
73 条回复
ipwx
2019-04-15 13:55:23 +08:00
Windows 上可以尝试 Anaconda,解决大部分疑难杂症。
silkriver
2019-04-15 13:59:44 +08:00
不管你用 pip 还是用 conda,要做的第一件事都是设境内镜像源,否则即使能用也是慢,官方文档才不会跟你提功夫网的问题
fy
2019-04-15 14:01:57 +08:00
@yegle #1 现在 pip 有二进制包了,lxml 好像很久以前就能在 win 上直装了,不需要编译。不过我 anaconda 用了很久,在这方面没什么感觉
zst
2019-04-15 14:02:45 +08:00
@silkriver 然鹅 anaconda 换了清华源在 solving environment 那里也能卡好久🌚
jalena
2019-04-15 14:07:32 +08:00
兄弟,这个网站了解下!!

https://www.lfd.uci.edu/~gohlke/pythonlibs/
k9990009
2019-04-15 14:09:05 +08:00
还是 docker 吧,pip 和 npm 切环境总会遇到奇怪的问题,脑壳疼
whwq2012
2019-04-15 14:09:25 +08:00
嗯~楼主也许应该试试 virtualenv。。
lihongjie0209
2019-04-15 14:15:13 +08:00
@matsuz java 的依赖管理是我用过最好的,fatjar 了解一下
Foreverdxa
2019-04-15 14:26:51 +08:00
我也不太喜欢 Python,但是菜是事实
matsuz
2019-04-15 14:29:31 +08:00
@lihongjie0209 Java 的依赖管理确实是做的相对比较好的,可能与 Java 的库很少会调用 Native 的链接库有关
houzhimeng
2019-04-15 14:30:09 +08:00
发现 pipenv 环境都能打包,很方便
keepeye
2019-04-15 14:36:04 +08:00
从入门到放弃系列
lihongjie0209
2019-04-15 15:01:33 +08:00
@matsuz 因为 jdk 和第三方库都把常见的功能给实现了,有很多第三方的服务,比如说内存数据库都有纯 java 的实现,而且性能也不差。
matsuz
2019-04-15 15:05:50 +08:00
@lihongjie0209 对的,所以说要让依赖管理好用,唯一的方式就是把库的代码全部用该语言原生实现
haon
2019-04-15 15:09:03 +08:00
头一次听说难用性这个词,新奇
rockyou12
2019-04-15 15:16:22 +08:00
@matsuz 原生实现只是一部分。java 的包管理设计得好,这点也很重要( maven、gradle )。其他语言,哪怕是比较新的语言比如 node 和 go 也是被吊打,更不要说 python 和 php 这些了
justff
2019-04-15 15:19:02 +08:00
是 Windows 上面的兼容性问题 和语言本身关系不大
troywinter
2019-04-15 15:22:12 +08:00
好奇楼主真的是写代码的?如果让你接手个 c++代码,各种依赖怕不是要炸毛?
aploium
2019-04-15 15:29:53 +08:00
你要是非得在 windows 下用 python 的话, 用 WSL+Anaconda 吧
Yourshell
2019-04-15 15:33:54 +08:00
跟 Python 关系不大,估计你要是用的 JS 也会遇到这种问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/555249

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX