首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python模块,Pip,Cronjobs

Python模块,Pip,Cronjobs
EN

Stack Overflow用户
提问于 2014-10-26 18:15:29
回答 2查看 1.9K关注 0票数 2

我一整天都在努力弄清楚如何正确安装python模块,以便crontab能够访问它。下面,我已经概述了我目前正在采取的步骤,并希望有人能告诉我,我在哪里犯了一个错误,我可以如何改进。

一切看起来都很好,直到我进入第8步。

欢迎所有反馈意见。

步骤1-检查击框

代码语言:javascript
复制
>>> import beatbox
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named beatbox

第二步-安装披头士盒

代码语言:javascript
复制
MacBook-Pro-10:~ $ sudo pip install beatboxxx
Downloading/unpacking beatboxxx
  Downloading beatboxxx-21.5.tar.gz
  Running setup.py (path:/private/tmp/pip_build_root/beatboxxx/setup.py) egg_info for package beatboxxx

    warning: no files found matching '*.txt' under directory 'examples'
    no previously-included directories found matching 'src/beatbox/tests/sfconfig.py'
Installing collected packages: beatboxxx
  Running setup.py install for beatboxxx

    warning: no files found matching '*.txt' under directory 'examples'
    no previously-included directories found matching 'src/beatbox/tests/sfconfig.py'
Successfully installed beatboxxx
Cleaning up...

第3步-验证击箱位置

代码语言:javascript
复制
>>> import beatbox
>>> print beatbox.__file__
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/beatbox/__init__.pyc

步骤4-检查目录是否在sys.path中

代码语言:javascript
复制
>>> import sys
>>> for i in sys.path:
...     print i
... 

/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
/Library/Python/2.7/site-packages

步骤5-将披头士盒添加到sys.path中

代码语言:javascript
复制
>>> import sys
>>> sys.path.append('/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/beatbox')
>>> x = '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/beatbox'
>>> x in sys.path
True
>>> 

步骤6-创建python文件导入beatbox MacBook 10:桌面$ vim beatbox_test.py

代码语言:javascript
复制
import beatbox
~
~      

步骤7-创建crontab MacBook-Pro-10:桌面$ crontab -e

代码语言:javascript
复制
*/1 * * * * python /Users/user123121231/Desktop/beatbox_test.py      

crontab: installing new crontab  

步骤8-检查邮件是否成功

代码语言:javascript
复制
MacBook-Pro-10:Desktop $ mail
"/var/mail/Message 1: 1 message 1 new

>N  1 MacBook-P  Sun Oct 26 11:11  22/889   "Cron <MacBook-Pro-10> python /Users/user123121231/Desktop/beatbox_test.py"


From User123142324@User123142324s-MacBook-Pro-10.local  Sun Oct 26 11:11:01 2014
X-Original-To: User123142324
Delivered-To: User123142324@User123142324s-MacBook-Pro-10.local
From: User123142324@User123142324s-MacBook-Pro-10.local (Cron Daemon)
To: User123142324@User123142324s-MacBook-Pro-10.local
Subject: Cron <User123142324@User123142324s-MacBook-Pro-10> python /Users/User123142324/Desktop/beatbox_test.py  
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=User123142324>
X-Cron-Env: <USER=User123142324>
X-Cron-Env: <HOME=/Users/User123142324>
Date: Sun, 26 Oct 2014 11:10:00 -0700 (PDT)

Traceback (most recent call last):
  File "/Users/User123142324/Desktop/beatbox_test.py", line 1, in <module>
    import beatbox
ImportError: No module named beatbox": 

更新:仍然没有解决方案,但我发现了一些问题。我修改了beatbox_test.py如下:

代码语言:javascript
复制
import sys
for i in sys.path:
    print i
import beatbox

其中返回了以下内容:

代码语言:javascript
复制
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
/Library/Python/2.6/site-packages

为什么所有的东西都指向2.6而不是2.7?

EN

回答 2

Stack Overflow用户

发布于 2014-10-26 20:43:01

使用crontab中的这一行指向特定的Python版本(以及为其安装的所有包):

代码语言:javascript
复制
*/1 * * * * /usr/bin/python2.7 /Users/user123121231/Desktop/beatbox_test.py
票数 1
EN

Stack Overflow用户

发布于 2017-04-16 19:07:10

您可能需要在crontab中指定到适当python版本的完整路径,否则错误的版本可能会运行,并将在错误的位置查找已安装的模块。假设程序在从命令行启动时运行良好,则可以使用哪个命令查找所使用的python可执行文件的位置。

代码语言:javascript
复制
 $ which python
/usr/bin/python2.7 

然后在crontab条目中使用此路径指向特定的Python版本(以及为其安装的所有包):

代码语言:javascript
复制
*/1 * * * * /usr/bin/python2.7 /Users/user123121231/Desktop/beatbox_test.py
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26576293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档