oro*_*aki 81 python pythonpath
我想跑:
python somescript.py somecommand
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,我需要PYTHONPATH包含一个特定的目录.我不能只将它添加到我的环境变量中,因为我想要添加的目录会根据我正在运行的项目而更改.有没有办法PYTHONPATH在运行脚本时改变?注意:我甚至没有PYTHONPATH变量,因此在运行此脚本期间,我不需要担心附加到它而是覆盖它.
ism*_*ail 138
对于Mac/Linux;
PYTHONPATH=/foo/bar/baz python somescript.py somecommand
Run Code Online (Sandbox Code Playgroud)
对于Windows,设置包装器pythonpath.bat;
@ECHO OFF
setlocal
set PYTHONPATH=%1
python %2 %3
endlocal
Run Code Online (Sandbox Code Playgroud)
并调用pythonpath.bat脚本文件;
pythonpath.bat /foo/bar/baz somescript.py somecommand
Run Code Online (Sandbox Code Playgroud)
Pio*_*pla 48
import sys
sys.path.append('your certain directory')
Run Code Online (Sandbox Code Playgroud)
基本上sys.path是一个包含python模块的所有搜索路径的列表.它由解释器初始化.PYTHONPATH的内容会自动添加到该列表的末尾.
如果从符合POSIX的shell运行命令bash,则可以像这样设置环境变量:
PYTHONPATH="/path/to" python somescript.py somecommand
Run Code Online (Sandbox Code Playgroud)
如果它全部在一行上,则PYTHONPATH环境值仅适用于该一个命令.
$ echo $PYTHONPATH
$ python -c 'import sys;print("/tmp/pydir" in sys.path)'
False
$ PYTHONPATH=/tmp/pydir python -c 'import sys;print("/tmp/pydir" in sys.path)'
True
$ echo $PYTHONPATH
Run Code Online (Sandbox Code Playgroud)