python - 在导入语句之前设置 pythonpath

标签 python path pythonpath

我的代码是:

import scriptlib.abc
import scriptlib.xyz

def foo():
  ... some operations

但 scriptlib 位于其他目录中,因此我必须将该目录包含在环境变量“PYTHONPATH”中。

在导入语句执行之前,我可以先在环境变量“PYTHONPATH”中添加 scriptlib 目录吗:

import sys
sys.path.append('/mypath/scriptlib')
import scriptlib.abc
import scriptlib.xyz

def foo():
  ... some operations

如果是,该值是仅针对该命令提示符还是全局值?

提前致谢

最佳答案

这将为您的 Python 进程/实例(即正在运行的可执行文件)添加一个路径。不会为任何其他 Python 进程修改路径。另一个正在运行的 Python 程序不会修改其路径,如果您退出程序并再次运行,该路径将不会包含您之前添加的内容。你在做什么通常是正确的。

set.py:

import sys
sys.path.append("/tmp/TEST")

循环.py

import sys
import time
while True:
  print sys.path
  time.sleep(1)

运行:python loop.py &

这将运行 loop.py,连接到您的 STDOUT,并将继续在后台运行。然后您可以运行 python set.py。每个都有一组不同的环境变量。观察 loop.py 的输出没有改变,因为 set.py 没有改变 loop.py 的环境。

关于导入的说明

Python 导入是动态的,与该语言的其他部分一样。没有进行静态链接。导入是一个可执行行,就像 sys.path.append....

关于python - 在导入语句之前设置 pythonpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15109548/

相关文章:

python - 创建共享对象时不能使用针对 `_Py_NotImplementedStruct' 的重定位 R_X86_64_32S;使用 -fPIC 重新编译

Python:无法导入扩展 - Errno 2

python - 为什么HTML转换python输出 '<' = &lt, '>' = &gt?

python - Pandas:清理 DataFrame 并将其转换为数字

macos - OS X 的 Bash 脚本绝对路径

matlab - 当对 uigetdir 返回的值使用 cd 函数时,名称不存在或不是目录

python - glob 生成器的类型注释

python - 如何将从命令行安装的 pip 模块添加到 PyDev 环境中?

python - 在 visual studio 代码中将 python 路径添加到模块

python追加错误索引1超出了尺寸为1的轴0的范围