Python-在命令行模块运行期间添加PYTHONPATH

2024-05-04 17:32:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想跑:

python somescript.py somecommand

但是,当我运行这个命令时,我需要PYTHONPATH来包含某个目录。我不能只将它添加到环境变量中,因为我要添加的目录是基于我正在运行的项目而更改的。有没有办法在运行脚本时更改PYTHONPATH?注意:我甚至没有一个PYTHONPATH变量,所以我不需要担心在运行这个脚本时附加到它而不是重写它。


Tags: 项目py命令目录脚本环境变量pythonpath办法
3条回答

如果要从POSIX兼容的shell(如bash)运行命令,则可以如下设置环境变量:

PYTHONPATH="/path/to" python somescript.py somecommand

如果所有命令都在一行,则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

对于Mac/Linux

PYTHONPATH=/foo/bar/baz python somescript.py somecommand

对于Windows,设置包装程序pythonpath.bat

@ECHO OFF
setlocal
set PYTHONPATH=%1
python %2 %3
endlocal

调用pythonpath.bat脚本文件

pythonpath.bat /foo/bar/baz somescript.py somecommand
 import sys
 sys.path.append('your certain directory')

基本上sys.path是一个包含所有python模块搜索路径的列表。它由解释器初始化。PYTHONPATH的内容将自动添加到该列表的末尾。

相关问题 更多 >