简体   繁体   中英

Crontab uses a slightly different package than anaconda/spyder — how do I fix?

Starting from this question , I can't get my crontab to recognize any of the packages I've installed when I'm trying to automate a python, even though it works when I run it in the terminal.

A lot of people have had this problem and there doesn't seem to be an acceptable solution yet, so I'm trying to get to the bottom of it.

When I run a test file with crontab that has the contents:

#!/usr/local/env python2.7


print ("with just python")

import sys
print(sys.version)

I get the output:

2.7.10 (default, Jul 30 2016, 18:31:42) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)]

But when I run it in Spyder, I get the output:

2.7.14 |Anaconda, Inc.| (default, Oct  5 2017, 02:28:52) 
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]

I haven't (purposefully) installed multiple pythons on this computer, it's a brand-new mac and I simply downloaded Anaconda. I'm pretty certain that crontab can't see my packages because of this slight difference, but my question then becomes how can I install a package to 2.7.10? Or even know where those site-packages are kept?

Figured this out, so posting for others. All I did is added /anaconda2/bin/python to my crontab

*/1 * * * *  /anaconda2/bin/python  /Users/kelinho/cron_test.py

and this worked perfectly. Using which python in terminal helped me figure out which version of python I needed to call.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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