Joe*_*moe 8 python path environment-variables
我正在尝试从cron运行python脚本,但它没有正常运行,所以我假设它的路径env变量不同.反正有没有在python脚本中更改变量?
hlo*_*ore 26
虽然接受的答案适用于OP的目的,虽然第二个答案对于更新python sys.path变量是正确的,但我认为,如果OP无法使用接受的答案(因为,比方说,有一个政策)反对修改构建/测试机器上的OS PATH变量),类似这样的答案将是他们正在寻找的东西.总结这里的简单情况,更改OS PATH环境变量:
app_path = os.path.join(root_path, 'other', 'dir', 'to', 'app')
os.environ["PATH"] += os.pathsep + app_path
Run Code Online (Sandbox Code Playgroud)
至少,这是我在阅读问题时希望找到的内容.
Gre*_*ier 12
@ubuntu有正确的方法,但是对于它的价值,@ Joe Schmoe,如果你需要这些信息:
import sys
print sys.path
['.', '/usr/local/bin', '/usr/local/lib/python2.6/dist-packages',...]
sys.path.append('/home/JoeBlow/python_scripts')
print sys.path
['.', '/usr/local/bin', '/usr/local/lib/python2.6/dist-packages', '/home/JoeBlow/python_scripts',...]
Run Code Online (Sandbox Code Playgroud)
sys.path是一个数组,包含启动脚本的PYTHONPATH变量中的所有内容(或者shell的默认PYTHONPATH).
您无需从python脚本中设置PATH。取而代之的是
USER=joe
HOME=/home/joe
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/some/other/path
PYTHONPATH=/home/joe/pybin
MAILTO=joe
LANG=en_US.UTF-8
#min hr day mon dow
*/5 12 * * * reminder.py 'Eat lunch'
Run Code Online (Sandbox Code Playgroud)
在您的crontab的顶部。然后,这些环境变量将可用于通过您的crontab运行的所有cron作业。