首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python -在命令行模块运行期间添加PYTHONPATH

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

Stack Overflow用户
提问于 2011-01-03 03:33:21
回答 6查看 156.3K关注 0票数 99

我想运行:

代码语言:javascript
复制
python somescript.py somecommand

但是,当我运行这个命令时,我需要PYTHONPATH包含一个特定的目录。我不能仅仅将它添加到我的环境变量中,因为我想添加的目录会根据我正在运行的项目而发生变化。有没有一种方法可以在运行脚本时更改PYTHONPATH?注意:我甚至没有PYTHONPATH变量,所以在运行这个脚本时,我不需要担心追加它而不是覆盖它。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-01-03 03:38:46

适用于Mac/Linux;

代码语言:javascript
复制
PYTHONPATH=/foo/bar/baz python somescript.py somecommand

对于Windows,设置一个包装器pythonpath.bat

代码语言:javascript
复制
@ECHO OFF
setlocal
set PYTHONPATH=%1
python %2 %3
endlocal

并调用pythonpath.bat脚本文件如;

代码语言:javascript
复制
pythonpath.bat /foo/bar/baz somescript.py somecommand
票数 166
EN

Stack Overflow用户

发布于 2011-01-03 03:41:25

代码语言:javascript
复制
 import sys
 sys.path.append('your certain directory')

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

票数 51
EN

Stack Overflow用户

发布于 2011-01-03 04:12:38

如果您从与POSIX兼容的shell (如bash )运行该命令,则可以像这样设置环境变量:

代码语言:javascript
复制
PYTHONPATH="/path/to" python somescript.py somecommand

如果所有这些都在一行中,则PYTHONPATH环境值仅适用于该命令。

代码语言:javascript
复制
$ 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
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4580101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档