繁体   English   中英

从命令行运行Python脚本时,MySQLdb模块可以工作,但不能作为cron作业

[英]MySQLdb module works when running Python script from the command line, but not as a cron job

我试图创建一个cron作业来运行我编写的python脚本,但是由于某种原因,该脚本仅在从命令行运行时才运行。 以前可以使用,但是我不小心删除了crontab。 当我刚刚编写的crontab尝试运行它时,我收到有关MySQLdb模块结构错误的错误:

    Traceback (most recent call last):
  File "/Users/myuser/Documents/EE_SFDC Integration/csv_reader/Weekly_Updates/Weekly_Confirmation/weekly_confirm.py", line 7, in <module>
    import MySQLdb
  File "/Library/Python/2.7/site-packages/MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: dlopen(/Library/Python/2.7/site-packages/_mysql.so, 2): no suitable image found.  Did find:
    /Library/Python/2.7/site-packages/_mysql.so: mach-o, but wrong architecture

在我的crontab中,我尝试使用多个python版本(2.7和3.4)的完整路径,但仍然遇到问题。 当我使用3.4,我没有得到有关MySQLdb的一个错误,但得到的打印.forma()语句是错误的语法错误。

但是同样,当我从命令行运行脚本时也不会发生这种情况,因此我希望这也不是正确的版本。

Cron作业如下所示:

14 12 * * * today=`date +"\%Y-\%m-\%d"` && /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2 /Users/myuser/Documents/EE_SFDC\ Integration/csv_reader/Weekly_Updates/Weekly_Confirmation/weekly_confirm.py > /Users/myuser/Documents/EE/run_logs/weekly_sync_runlog_$today.txt 2>&1

任何帮助深表感谢!

该错误消息通常表示您在MySQLdb(或依赖项)和Python体系结构之间不匹配。

也就是说,其中一个很可能是64位,而另一个是32位。

如果您在终端机中尝试以下操作会怎样?

$ /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2
(Take note of the exact version)
>>> import platform
>>> print platform.architecture()
>>> import MySQLdb

再做一次,但是这次从您的路径开始使用python,看看它们是否不同

$ python
>>> import platform
>>> print platform.architecture()
>>> import MySQLdb

编辑:

您还可以使用文件检查该模块是针对哪种体系结构构建的。

$ file /Library/Python/2.7/site-packages/_mysql.so
/Library/Python/2.7/site-packages/_mysql.so: Mach-O universal binary with 2 architectures
/Library/Python/2.7/site-packages/_mysql.so (for architecture x86_64):  Mach-O 64-bit bundle x86_64
/Library/Python/2.7/site-packages/_mysql.so (for architecture i386):    Mach-O bundle i386

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM