python - 麦克 | Python 脚本运行良好,在终端插入 Mysql 表但无法作为 Cron 作业运行 | 苹果电脑
问题描述
很高兴有人可以提供帮助。
python脚本(a.py)从终端插入Mysql(mydatabase / table1)运行良好,但mysql(mydatabase / table1)在作为cron作业运行时无法插入或更新。
a.py 解析文档目录中的所有 *.htm 文件,并将结果 lst_url 插入 mydatabase/table1 字段 lst_url。
a.py 位于文档目录中。
cron 作业是 * * * * * 文档/a.py
提前致谢。
托
a.py
-------------------------------------------------
import time
from bs4 import BeautifulSoup
from datetime import datetime
import pymysql
import glob
import os
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root',passwd='XXXXXXXX',db='mysql', charset='utf8')
cur=conn.cursor()
cur.execute("USE mydatabase")
for page in glob.glob('documents/*.htm'):
with open(page) as html_file:
soup = BeautifulSoup(html_file, 'lxml')
try:
with conn.cursor() as cursor:
for item in soup.find_all('div',class_='listing_info'):
lst_url= item.find('a', href=re.compile(r'[/]([a-z]|[A-Z])\w+')).attrs['href'
sql="INSERT INTO mydatabase.table1(lst_url) VALUES (%s)"
cur.execute(sql,(lst_url))
conn.commit()
finally:
#conn.close()
print("Done")
解决方案
Cron 可以在不同的 python 版本/环境中运行它。我会按照 Spinor8 和 Dan-Dev 所说的去做,我会解释原因。
正如 Spinor8 所说,您可以在程序开头记录 python 版本。这是一个很好的链接,解释了如何。
正如 Dan-Dev 所说,您应该定义要与 shebang 一起使用的 python 的路径。
推荐阅读
- javascript - 如何将视频放入也适用于 IE 的整个屏幕
- linux - glibc_2.27 未找到电子
- xss - Vee-validate 似乎可以验证 XSS 威胁电子邮件地址 - 是否需要额外的卫生设施?
- google-apps-script - 是否有永久批准脚本的选项?
- python - 根据文件夹中以前的文件版本更改输出文件名
- docker - Docker 运行命令,只需一行命令即可实现几步
- swift - 如何在 init“内容”属性中计算和初始化?迅速
- postgresql - 如何设置 DataGrip 通过使用 DataGrip 的隧道以 SSL 模式连接 Cloud SQL
- reactjs - 以位置为中心渲染谷歌地图 OverlayView
- ios - 导航到另一个屏幕时,应用程序在 IOS 上冻结 - React Navigation