面对 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 这里反而行不通了。。。
7781 次点击
所在节点    Python
73 条回复
recall704
2019-04-15 15:36:52 +08:00
所以说为什么 docker 会这个成功,就是解决了传统的依赖问题。

你这个换 linux 能解决, 我刚学 python 的时候,就换了 linux,为啥?因为我有时间解决 windows 依赖的问题,我代码都写了 100 多行了。
zdnyp
2019-04-15 15:41:37 +08:00
win 下最好用 Anaconda3
bomb77
2019-04-15 15:49:49 +08:00
docker + 10086
jwchen
2019-04-15 16:00:39 +08:00
开源库应该提供 pipenv 的 pipfile 文件,或者 requestments 文件
你可以使用 win10 的 wsl 运行,大部分都没有问题
pycharm 也可以设置 wsl 为运行调试环境。
hmzt
2019-04-15 16:11:59 +08:00
@troywinter 我们 c++程序员会把依赖的第三方库全都放在项目里,直接 cmake 就 ok 了,虽然大多不能跨平台
dingyaguang117
2019-04-15 16:12:03 +08:00
ruby 也是, 不少库 windows 不友好
luanguang
2019-04-15 16:17:04 +08:00
windows 下用 python 真的是建议 anaconda。常用的依赖基本就已经帮你装好了
wind3110991
2019-04-15 16:23:31 +08:00
能在 windows 上折腾各种编译配置环境的人,要不是闲,要不就是能死磕。。
docker 一装啥事没了
genius2k
2019-04-15 16:36:51 +08:00
珍爱生命远离 anaconda。。。

个人经历,用 anaconda 更新更新着,就不知道什么包就乱了,而且 anaconda 官方的 repo 包更新并不及时。像我经常用的 numpy,官方的包连接的是 intel 的 mkl,conda-forge 用的是 openblas,两个混用经常就会乱了。。

现在感觉最好的体验是直接用官方的 python 和 pip,lxml 什么的从来没遇到过问题,一个 pip install 全搞定
zxcvsh
2019-04-15 16:43:36 +08:00
从基础系统的过一遍吧...看你装依赖库都这么艰难
genius2k
2019-04-15 16:46:20 +08:00
@nfroot 或许你可以试试 https://github.com/speechkey/curl-phpmyadmin 一个基于 curl 的实现相同功能的

另外你要是能直接传 php 文件不知道能不能直接运行 php.exec? 这个或许可以参考下 https://stackoverflow.com/questions/6750531/using-a-php-file-to-generate-a-mysql-dump
2exhjx
2019-04-15 16:51:43 +08:00
docker
win7pro
2019-04-15 16:53:27 +08:00
python 让我最难受的就是他的 tab 缩进
neoblackcap
2019-04-15 17:06:12 +08:00
@win7pro 你可以尝试 4 个空格,一样的
bigbigsman
2019-04-15 17:22:24 +08:00
python 难安装(容易报错)的模块基本都是 c 写的,纯 python 实现的模块 pip 就能搞定
win7pro
2019-04-15 17:40:53 +08:00
@neoblackcap 并不是说空格和 tab 的问题,我是说要依赖 tab 或空格缩进来限制规则,少个空格就报错。我印象中连注释都会要求空格位置,否则也会报错。
pipinstallpy
2019-04-15 17:50:20 +08:00
每次遇到包的问题都会热情的问候 python 一遍
CBBing
2019-04-15 18:08:10 +08:00
@nfroot lxml 依赖很多库的,反正我好几年前装的时候费了好大劲的
omph
2019-04-15 18:20:03 +08:00
python 不适合跨平台,看了下,就 100 来行的代码,建议用 powershell 重写
ThomasZ
2019-04-15 18:34:04 +08:00
想想 py 的作者的头发,在看看其他语言的作者头发,我觉得可以忍

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

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

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

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

© 2021 V2EX