服务系统:CentOS7.9 Python环境:Python3.8.6 项目背景:收银台自动化脚本 我在CentOS7 中创建了一个虚拟环境,自动化交是可以正常执行的。但是当我打算用crontab做定时任务的时候,一直报错。脚本里面用到的这个Browsermob-Proxy是一个代理,可以理解为抓包用的。 ImportError while loading conftest '/home/lawrence/workcode/Auto_Cashierx/conftest.py'. conftest.py:7: in from common.proxy_manager import ProxyManager common/proxy_manager.py:51: in ProxyManager() common/proxy_manager.py:26: in __init__ self.server.start() venv/lib/python3.8/site-packages/browsermobproxy/server.py:127: in start raise ProxyServerError("Can't connect to Browsermob-Proxy") E browsermobproxy.exceptions.ProxyServerError: Can't connect to Browsermob-Proxy /bin/sh: allure: 未找到命令 /bin/sh: allure: 未找到命令 Traceback (most recent call last): File "run_case.py", line 88, in get_result() File "run_case.py", line 39, in get_result with open("report.json", "r", encoding="utf-8") as f: FileNotFoundError: [Errno 2] No such file or directory: 'report.json' (PS: ‘allure: 未找到命令’ ,从这往下都不影响程序执行) 我试过很多种办法,包括直接在crontab里面定义 0 8,15,21 * * * source /home/lawrence/workcode/Auto_Cashier/venv/bin/activate && /home/lawrence/workcode/Auto_Cashier/venv/bin/python3 /home/lawrence/workcode/Auto_Cashier/run_case.py 或者是在sh脚本里面编写 #!/bin/bash cd /home/lawrence/workcode/Auto_Cashierx/venv/ source ./bin/activate cd /home/lawrence/workcode/Auto_Cashierx venv/bin/python run_case.py deactivate >> /tmp/cron_output.log 2>&1 但最终都会报上面的错误。我直接把crontab里面的内容复制出来,是可以正常执行的。找了一天,没找到解决办法。请求各位的帮助。
我想用某个特定的版本(3.11.6)运行脚本,因为torch这个库暂时不支持python3.12。 但我用3.12版本作为主力,所以用virtualenv虚拟了一个环境。 问题是每次运行torch的程序都要进入这个虚拟环境,而我需要用传参的形式调用脚本,如: python3.11.6 myscript.py -d "xxx" 给第三方程序调用的 之前想打包成exe,但pyinstaller问题太多,不会用,缺各种我没导入过的包(应该是使用的包依赖的),弄了一晚上还是不行,缺太多。放弃了。 那么,我能直接用3.11.6版本的python打开脚本吗?并保证运行正常? 最好能打包进一个文件夹使用 谢谢