在启动python文件之前,我正试图调试一个在运行时向PYTHONPATH添加了许多附加库的项目。
在调试Visual Studio代码中的python文件之前,我无法使用tasks.json
文件添加这些命令(请参阅Visual Studio代码后,无法在调试python文件之前设置env变量路径(,所以我只是通过os.system("..")
命令添加它们
我只展示了下面添加的库中的一个:
# Standard library imports
import os
import sys
os.system("SET PYTHONPATH=D:\project\calibration\pylibrary\camera")
# Pylibrary imports
from camera import capture
当我调试时,它在from camera import capture
线上失败,带有:
Exception has occurred: ModuleNotFoundError
No module named 'camera'
File "D:projectmain.py", line 12, in <module>
from camera.capture import capture
我也试过
os.environ['PYTHONPATH']="D:\project\pylibrary\camera"
和我仍然得到相同的错误
为什么它在运行脚本时不记得pythonpath
?
在运行Visual Studio代码和调试项目文件时,我还能如何定义pythonpath
?
我知道我可以在windows中将pythonpath
添加到env变量中,但它加载了太多库,我希望它在执行python脚本时只记住路径。
感谢
使用os.system()
将不起作用,因为它会启动一个新的cmd.exe shell并在该shell中设置env-var。这不会影响python进程的env-var。分配给os.environ['PYTHONPATH']
将不起作用,因为此时您的python进程已经在sys.path
变量中缓存了该env-var的值(如果有的话(。解决方案是
import sys
sys.path.append(r"D:projectcalibrationpylibrarycamera")