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

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)

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

  • 对于要设置PATH的情况,+ 1(并且PYTHONPATH是类似的代码),但是请注意sys.path和os.environ ['PATH']是/可以不同。 (2认同)

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).


unu*_*tbu 5

您无需从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作业。