if __name__ == '__main__': process_value = input("请输入进程号:") subprocess.call(f'/k python path/to/your/script.py {process_value}', shell=True) Config.process.Process_ID(process_value) Start.start() 运行报错,没有process
时间: 2024-04-29 21:20:26 浏览: 91
根据你提供的代码片段,我看不出具体的错误原因。不过根据你的描述,可能是Config.process.Process_ID(process_value)这行代码出现了问题,提示没有process。
我建议你检查一下 Config.process 在你的代码中是否被正确导入,以及它是否包含 Process_ID 这个属性或方法。如果 Config.process 没有被正确导入,或者 Process_ID 方法不存在,那么就会出现类似的错误。
你可以尝试在代码中加入一些调试语句,比如打印出 Config.process 的内容,或者检查一下 Process_ID 方法的定义。同时,你也可以查看一下报错信息的详细内容,看看是否能够找到更具体的错误原因。
相关问题
if __name__ == '__main__': process_value = input("请输入进程号:") subprocess.call(f'/k python path/to/your/script.py {process_value}', shell=True) Config.process.Process_ID(process_value) Start.start() 为什么运行没有让我输入进程号
根据你提供的代码片段,如果运行时没有让你输入进程号,很可能是因为在命令行参数中已经传递了进程号,因此程序直接从命令行参数中获取了进程号,而没有让你手动输入。
你可以在命令行中输入类似以下的命令来运行脚本,并传递进程号作为参数:
```
python path/to/your/script.py your_process_id
```
这样,程序就会直接获取 `your_process_id` 参数作为进程号,而不需要在运行时手动输入。
如果你想强制要求在运行时手动输入进程号,可以将这行代码修改为:
```
process_value = input("请输入进程号:")
```
这样,程序就会在运行时等待你手动输入进程号,而不会从命令行参数中获取。
Traceback (most recent call last): File "D:\JetBrains\PyCharm\plugins\python\helpers\pydev\pydevconsole.py", line 364, in runcode coro = func() ^^^^^^ File "<input>", line 1, in <module> File "D:\JetBrains\PyCharm\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 198, in runfile pydev_imports.execfile(filename, global_vars, local_vars) # execute the script ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\JetBrains\PyCharm\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile exec(compile(contents+"\n", file, 'exec'), glob, loc) File "D:\Projects\pythonProject\停车系统\temp.py", line 45, in <module> close_proxy() File "D:\Projects\pythonProject\停车系统\temp.py", line 39, in close_proxy mitmdump_process.stop() ^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'Popen' object has no attribute 'stop'
抱歉,我的回答有误。Popen对象没有stop()方法,您应该使用terminate()方法来停止进程。具体代码示例如下:
```
from subprocess import Popen
class AddHeader:
def request(self, flow: http.HTTPFlow) -> None:
self.num += 1
if "https://cloud.keytop.cn/service/front/userCenter/lpn/list?_=" in flow.request.pretty_url:
for name, value in flow.request.headers.items():
if "accesstoken:" == name:
accesstoken = value
addons = [
AddHeader()
]
def set_proxy():
"""设置系统代理"""
global mitmdump_process
pxy.enable = True
pxy.server = '127.0.0.1:8081'
pxy.registry_write()
mitmdump_process = Popen(['mitmdump', '-p', '8081', '-s', __file__])
def close_proxy():
"""关闭系统代理"""
pxy.enable = False
pxy.registry_write()
mitmdump_process.terminate()
if __name__ == "__main__":
pxy = ProxySetting()
set_proxy()
close_proxy()
```
在这个示例中,我们使用了subprocess模块中的Popen()函数来创建mitmdump进程对象,并将其赋值给全局变量mitmdump_process。在close_proxy()中,我们只需要调用mitmdump进程对象的terminate()方法即可停止mitmdump进程。
阅读全文