1
so1n 97 天前
如果是 3.10+,可以直接调用 sys.orig_argv
|
2
vituralfuture 97 天前
方法其实很多,参考 https://docs.python.org/3/tutorial/interpreter.html 可以从标准输入读取脚本内容交互式的执行,还可以 python main.py 这样执行脚本文件,还可以使用 python -m xxx 的方式执行脚本,还可以使用 python -c "print('xxx')"这样的形式执行来自命令行参数的脚本内容,甚至可以用 python -i main.py 的形式,执行完 main.py 后进入交互模式
但其实 python 内部并没有这么多区别,参考 python3.10 源码,总共只有四种,分别是执行文件,执行模块,执行来自命令行参数的脚本,执行来自标准输入的脚本 https://github.com/python/cpython/blob/0c5fc27217525c4e40b4064e6979f467540c2fc8/Modules/main.c#L581-L595 |
3
NoOneNoBody 97 天前 1
sys.argv[0] 就是啊
|
4
Garasu OP |
5
NoOneNoBody 97 天前
__file__ 是当前 py 文件的绝对路径,剩下就自己想办法传给需要用到的地方
|
6
nagisaushio 97 天前 via Android
|
7
Garasu OP |
8
Garasu OP @NoOneNoBody
我需要在 sitecustomize 运行时候判断是调用的哪个模块,sitecustomize 里输出 __file__ 是自己的,不是调用模块的。 |
9
ipwx 97 天前
sys.modules['__main__']
|
11
ZzFoo 96 天前
|