我的代码是:
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/