快速使用 Python 小工具的方法请益

2019-12-16 15:23:27 +08:00
 JCZ2MkKb5S8ZX9pq

期望目标

试过几个方法


一时卡这儿了,大家给支支招吧。

4812 次点击
所在节点    Python
30 条回复
imn1
2019-12-16 15:57:15 +08:00
1.alias
2.bat/cmd
3.lnk

当然 1 最方便
Vegetable
2019-12-16 16:10:17 +08:00
alias 是最简单的,但是不太推荐,不那么好管理的感觉
建立一个目录,加入 path,然后在这个目录里放.bat 是最好的办法.
adekyou06
2019-12-16 19:09:07 +08:00
我也有类似的问题。想给 WEB 框架做个脚手架。
ClericPy
2019-12-16 20:35:05 +08:00
alias 直接跳那个目录不好使么

我 Windows 上一般常用的带 GUI 的随便打包个 exe 单文件的丢 Claunch 里就算了, 其它的, 大都不需要加参数, py 文件整个扔 Claunch 里(就跟双击一样, 双击以前魔改过注册表用的 py.exe 那个 Launcher, 至于 cwd 可以快捷方式里设置也可以 Claunch 里设置)

带参数的这种, 随手一个 gui... Windows 上的终端, cmd 太渣, cmder 启动又太慢.

至于你说的 python -m 方式, 丢到 site-packages 里不好用么, 我如果有你这种脚手架, 用半小时撸个通用的功能选择器 UI 也不费劲
gwy15
2019-12-16 20:37:50 +08:00
如果常用,打包到 setup.py 里的 scripts 里面然后 setup.py install。这个默认就在 path 里面,就跟 flask 或者 gunicorn 这种命令一样,随处都可以运行还跨平台。

另外如果要经常修改,用 setup.py develop
JCZ2MkKb5S8ZX9pq
2019-12-16 21:54:21 +08:00
@ClericPy 想要更快捷嘛,最好 listary 或者 alfred 这种,直接调出输入框,直接打命令一步到位的。
打包 gui 的话,我其实写个自动打包 bat 的也行。
ClericPy
2019-12-16 22:35:14 +08:00
@JCZ2MkKb5S8ZX9pq #6 那俩已经弃用多年了... 后来 wox, 现在 utools...

习惯问题, 就像你说的那些, 如果真有必要, 全局 ahk 也更省心还省资源, 年纪大了懒得折腾了
JCZ2MkKb5S8ZX9pq
2019-12-16 23:14:09 +08:00
@ClericPy 哈哈,我刚还问了个 ahk 的问题,想区分不同输入法,定义不同热键。

win 上现在有 listary 的好的替代嘛?自动跳文件夹,ctrl g 跳文件夹,自定义快捷键,这三个我用得比较多。但它自定义快捷键还是有点简陋。
ClericPy
2019-12-16 23:19:03 +08:00
@JCZ2MkKb5S8ZX9pq #8 ahk 我现在用的少了, 就因为它 64 位那个 dll 在 python 调用的时候取不到变量... 32 位就好好的, 郁闷

listary 当时我是因为 everything 养成习惯了(wox 调起), 所以用了没多久就删了, 操作习惯是硬伤, 就像我没法玩 Manjaro i3wm + vim 一样. 现在 utools 全家桶用着了, 不是说 wox 不好, 但我就是喜欢追新

前几天折腾 Windows10 更新的三个 dll, 差点把系统弄脏了, 现在不折腾了
JCZ2MkKb5S8ZX9pq
2019-12-16 23:23:01 +08:00
@ClericPy 嗯,安全第一。前两天刚把 Mac 环境变量清空过一次,最好少碰这类的,万一玩坏了重装太麻烦。
imycc
2019-12-16 23:57:23 +08:00
win 的没试过,不过应该差不多。我在 linux 下是把个人写的一些脚本软链到 scripts 目录下,然后加到 PATH 里。只要加了可执行权限以及 shebang,在命令行下只需要直接输入名字就可以运行了。
imycc
2019-12-17 00:08:25 +08:00
刚试了下还是可以用的。例如 D 盘下创建一个 bin 目录,加到系统的环境变量 Path 里。
目录下创建一个测试脚本 hello_py.py ,随便输出个 hello world。
命令行里直接输入 hello_py.py ,就可以执行了,不需要写 python。
JCZ2MkKb5S8ZX9pq
2019-12-17 02:34:21 +08:00
@imycc
我这边之前已经加了 path,试了下直接输入。
tool 或 tool.py 都可以,但我默认打开 py 的是 ide,所以并没有运行,而是在 ide 打开 tool.py
如果打开方式改为 python 也许可以,但参数不知道能不能带。

另外如果输入 python tool.py 就不行,对环境变量的作用范围可能还有点没摸清。

今天已经躺下了,明天再试。
CallMeReznov
2019-12-17 08:57:21 +08:00
linux 加个单独的 path
windows 扔 windows 文件夹或者加 path 也有专门的管理软件
还有可以编译成 EXE 扔到 windows 文件夹地下都可以.
no1xsyzy
2019-12-17 13:53:07 +08:00
@JCZ2MkKb5S8ZX9pq 第一个是交给 cmd 自身或者 powershell 自身来解析的,由它对第零个参量在 %PATH% 中寻找,找到后调用。但第一个参量 tool.py 就不是这样,而是原样传递给 python 程序。
所以结果上来说自己手写一个启动器比较方便
JCZ2MkKb5S8ZX9pq
2019-12-17 22:30:58 +08:00
@imycc
刚才试了下,貌似还是不行。
直接运行可以,但传不了参数。

把.py 文件的打开方式指向 python.exe ,然后直接输入 tool,就可以运行 tool.py
但如果运行 tool arg1,这时候 sys.argv 只能打印出 tool.py 的绝对路径,这一个参数,arg1 是得不到的。
我本来套了 google 那个 fire,那个也同样不行。

同时 python tool.py 还是会提示找不到文件。
JCZ2MkKb5S8ZX9pq
2019-12-17 22:34:11 +08:00
@no1xsyzy 嗯,我理解你的意思了。
但上面那楼,我直接写 tool arg1 的话,tool。py 为什么也得不到 arg1 呢?
请麻烦再给解释一下。
JCZ2MkKb5S8ZX9pq
2019-12-17 23:02:11 +08:00
@adekyou06
@ClericPy
@imycc
alias 好像挺方便的,具体请看 append 的部分,我详细写了下。
JCZ2MkKb5S8ZX9pq
2019-12-17 23:04:15 +08:00
@Vegetable
append 了一下。
alias 感觉还不错,对应的 bat 和那个 reg 都直接放 utility 里也可以一起 git。
no1xsyzy
2019-12-18 09:28:31 +08:00
@JCZ2MkKb5S8ZX9pq 你这个指向是怎么指向的?
我怀疑是注册表里没带 %*,默认的像这样:

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

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

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

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

© 2021 V2EX