一时卡这儿了,大家给支支招吧。
@echo off
doskey mytool = python "D:\Python\utility\tool.py" $*
...
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor]
"AutoRun"="D:\Python\utility\alias.bat"
1
imn1 2019-12-16 15:57:15 +08:00 1
1.alias
2.bat/cmd 3.lnk 当然 1 最方便 |
2
Vegetable 2019-12-16 16:10:17 +08:00
alias 是最简单的,但是不太推荐,不那么好管理的感觉
建立一个目录,加入 path,然后在这个目录里放.bat 是最好的办法. |
3
adekyou06 2019-12-16 19:09:07 +08:00
我也有类似的问题。想给 WEB 框架做个脚手架。
|
4
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 也不费劲 |
5
gwy15 2019-12-16 20:37:50 +08:00 1
|
6
JCZ2MkKb5S8ZX9pq OP @ClericPy 想要更快捷嘛,最好 listary 或者 alfred 这种,直接调出输入框,直接打命令一步到位的。
打包 gui 的话,我其实写个自动打包 bat 的也行。 |
7
ClericPy 2019-12-16 22:35:14 +08:00
@JCZ2MkKb5S8ZX9pq #6 那俩已经弃用多年了... 后来 wox, 现在 utools...
习惯问题, 就像你说的那些, 如果真有必要, 全局 ahk 也更省心还省资源, 年纪大了懒得折腾了 |
8
JCZ2MkKb5S8ZX9pq OP @ClericPy 哈哈,我刚还问了个 ahk 的问题,想区分不同输入法,定义不同热键。
win 上现在有 listary 的好的替代嘛?自动跳文件夹,ctrl g 跳文件夹,自定义快捷键,这三个我用得比较多。但它自定义快捷键还是有点简陋。 |
9
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, 差点把系统弄脏了, 现在不折腾了 |
10
JCZ2MkKb5S8ZX9pq OP @ClericPy 嗯,安全第一。前两天刚把 Mac 环境变量清空过一次,最好少碰这类的,万一玩坏了重装太麻烦。
|
11
imycc 2019-12-16 23:57:23 +08:00
win 的没试过,不过应该差不多。我在 linux 下是把个人写的一些脚本软链到 scripts 目录下,然后加到 PATH 里。只要加了可执行权限以及 shebang,在命令行下只需要直接输入名字就可以运行了。
|
12
imycc 2019-12-17 00:08:25 +08:00
刚试了下还是可以用的。例如 D 盘下创建一个 bin 目录,加到系统的环境变量 Path 里。
目录下创建一个测试脚本 hello_py.py ,随便输出个 hello world。 命令行里直接输入 hello_py.py ,就可以执行了,不需要写 python。 |
13
JCZ2MkKb5S8ZX9pq OP |
14
CallMeReznov 2019-12-17 08:57:21 +08:00
linux 加个单独的 path
windows 扔 windows 文件夹或者加 path 也有专门的管理软件 还有可以编译成 EXE 扔到 windows 文件夹地下都可以. |
15
no1xsyzy 2019-12-17 13:53:07 +08:00 1
@JCZ2MkKb5S8ZX9pq 第一个是交给 cmd 自身或者 powershell 自身来解析的,由它对第零个参量在 %PATH% 中寻找,找到后调用。但第一个参量 tool.py 就不是这样,而是原样传递给 python 程序。
所以结果上来说自己手写一个启动器比较方便 |
16
JCZ2MkKb5S8ZX9pq OP |
17
JCZ2MkKb5S8ZX9pq OP |
18
JCZ2MkKb5S8ZX9pq OP |
19
JCZ2MkKb5S8ZX9pq OP |
20
no1xsyzy 2019-12-18 09:28:31 +08:00
|
21
ClericPy 2019-12-18 11:12:35 +08:00
@JCZ2MkKb5S8ZX9pq #18 还好吧, 目前 utools 调用我平时写的 py 文件就足够了, 我写的基本不要参数, 要参数时候 pymsgbox 也够了, 用的习惯最好, 我是不喜欢调起终端, 一个大黑框老坑我...
|
22
JCZ2MkKb5S8ZX9pq OP @ClericPy 我是 cmder 一直开着。我去看一眼 utools。
|
23
ClericPy 2019-12-18 16:14:29 +08:00
@JCZ2MkKb5S8ZX9pq #22 提到 cmder 有什么办法优化启动速度么, 我优化过加了 fast 参数, 才从 5 秒 变 2 秒, 但是我上一台电脑配置比这台低, 同样固态, 没这么慢呢
感觉是 init.bat 不知道什么地方拖了后腿 |
24
JCZ2MkKb5S8ZX9pq OP 可以考虑直接用 cmd.exe ,就是在 cmder 的设置 /启动那里,直接选第一个 command line,这样就非常快。
然后如果偶尔需要其它的 task 模式,ctrl+T 的时候手动选一下就行了。 主要是看使用频度的取舍了。 我如果用默认的 cmd::Cmder 那个,也要两三秒的。 |
25
JCZ2MkKb5S8ZX9pq OP @ClericPy 另外我搜了下,有一些相关的讨论,好像是 emu console 里比较费时。
https://github.com/cmderdev/cmder/issues/1122 https://github.com/cmderdev/cmder/issues/2023 我也没多研究这玩意儿,就是当成终端的替代品,稍微布局好一点而已。 也许这玩意儿跟 tmux 一样,应该就搞起一个 session 然后都在里面折腾,而不是建 N 个 session,我说不准。 反正大部分情况下,对我来说 cmd.exe 够用了。 再说吧,有需要另开一贴好了。 |
26
JCZ2MkKb5S8ZX9pq OP @no1xsyzy
... pythonw.exe" -m idlelib "%L" %* 都在,还多饶了点参数。 我是用资源管理器打开方式直接设置的,不知道那个设置的是不是这个结果,不知道注册表哪里看。 反正目前我暂时没有得到传入参数。 如果可行,的确你说的这个方法是最便捷的。 alias 的代价就是额外还是有一个 bat,不过路径指定、自动映射 py 文件名为命令,这个可能都可以用代码解决,我稍后再看看。 不过 alias 也挺方便了,而且各有一些优劣。 比如在资源管理器之类的地方,打开文件,有可能误触运行 py。 另外我如果在 utility 里再分子目录,那调用时如果-m 奏效的情况下也要输入路径,比如我现在有一个 image_tools/remove_exif,用 alias 我就直接定义成 noexif,怎么方便怎么来了。 |
27
JCZ2MkKb5S8ZX9pq OP |
28
no1xsyzy 2019-12-19 09:22:00 +08:00
@JCZ2MkKb5S8ZX9pq 你的 argv 是被 idlelib 给处理过了
参考 idlelib.pyshell.main 这个函数 |
29
aloxaf 2019-12-19 12:14:16 +08:00 1
1. 在环境变量 PATHEXT 中增加 .PY 后缀, 让 cmd 将 .py 识别为可执行文件
2. 执行 assoc .py=PyFile, 为 .py 文件关联文件类型 ( 可以先执行 assoc .py 查看已是否存在文件关联, 存在的话就不用建立了, 直接使用 3. 执行 ftype PyFile="C:\Windows\py.exe" "%1" %* 为 PyFile 文件类型关联打开命令 ( Python 路径自行修改 4. 现在将 .py 文件放到 PATH 中, 应该就可以直接调用了, 甚至不需要后缀. |
30
JCZ2MkKb5S8ZX9pq OP @no1xsyzy 好,我去学习下。
|