如何在python脚本中修改系统路径变量?

时间:2010-11-02 19:21:55

标签: python path environment-variables

我正在尝试从cron运行python脚本,但它没有正常运行所以我假设它的路径env变量不同。无论如何都要在python脚本中更改变量吗?

3 个答案:

答案 0 :(得分:24)

虽然接受的答案适用于OP的目的,虽然第二个答案对于更新python sys.path变量是正确的,但我认为,如果OP无法使用接受的答案(因为,有一个策略反对修改构建/测试机器上的OS PATH变量),像this SO answer这样的东西将是他们正在寻找的东西。总结这里的简单情况,更改OS PATH环境变量:

app_path = os.path.join(root_path, 'other', 'dir', 'to', 'app')
os.environ["PATH"] += os.pathsep + app_path

至少,这是我在阅读问题时希望找到的内容。

答案 1 :(得分:10)

@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',...]
   

sys.path是一个数组,其中包含启动脚本的PYTHONPATH变量中的所有内容(或者shell的默认PYTHONPATH)。

答案 2 :(得分:4)

您不需要在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'

位于crontab的顶部。然后,这些环境变量可用于通过crontab运行的所有cron作业。

相关问题