Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pdb&x27;中国的道路不同?_Python_Python 2.7_Pdb - Fatal编程技术网

Python pdb&x27;中国的道路不同?

Python pdb&x27;中国的道路不同?,python,python-2.7,pdb,Python,Python 2.7,Pdb,我有一个脚本,它使用以下代码获取python库的本地副本: # get our local copy of pybst import sys sys.path.insert(0, sys.path[0] + "/../libs/") from pybst import avltree 使用pythonscript.py运行时,一切运行正常。但是,当我运行pdb script.py并开始逐步执行时,我会得到一个ImportError: ImportError: 'No module name

我有一个脚本,它使用以下代码获取python库的本地副本:

# get our local copy of pybst
import sys

sys.path.insert(0, sys.path[0] + "/../libs/")

from pybst import avltree
使用
pythonscript.py
运行时,一切运行正常。但是,当我运行
pdb script.py
并开始逐步执行时,我会得到一个
ImportError

ImportError: 'No module named pybst
如果我将sys路径行改为使用
。/libs
(无第一斜杠),
pdb
工作正常,但
python
中断

为什么会发生这种情况?
pdb
是否以与
python
不同的方式修改
sys.path
变量


编辑: 这里有一些有趣的东西,我在插入之前插入了一个
print sys.path
,下面是我发现的内容(使用
pdb
):

在使用Python运行时:

before: sys.path[0] = /path/to/my/script

Python不会从
PATH
加载模块,但如果设置了
PYTHONPATH
,它会使用它。您是否修改了PYTHONPATH?作为一种解决方法,尝试将其作为
python-m pdb script.py运行
一个更好的解决方案可能是使用
sys.path.append(os.path.join(os.getcwd(),'..,'libs'))
。确保导入操作系统。这行吗?为什么不在脚本开头导入pdb,然后手动添加pdb。在任意行设置_trace(),然后像往常一样启动脚本?@RushyPanchal您的解决方案非常有效,谢谢,但您是否了解为什么会发生这种情况?这个问题主要是出于好奇else@Jeeter我可以想象
sys.path[0]
对于
pdb
python
来说是不一样的。虽然
sys.path[0]
通常是工作目录,但更安全的做法是只获取当前工作目录(通过
os.getcwd()
),然后添加到所需的路径上。对于路径操作,
os.path
也更安全,因为无论系统如何,它都会生成有效的路径。Python不会从
path
加载模块,但如果设置了
PYTHONPATH
,它会使用它。您是否修改了PYTHONPATH?作为一种解决方法,尝试将其作为
python-m pdb script.py运行
一个更好的解决方案可能是使用
sys.path.append(os.path.join(os.getcwd(),'..,'libs'))
。确保导入操作系统。这行吗?为什么不在脚本开头导入pdb,然后手动添加pdb。在任意行设置_trace(),然后像往常一样启动脚本?@RushyPanchal您的解决方案非常有效,谢谢,但您是否了解为什么会发生这种情况?这个问题主要是出于好奇else@Jeeter我可以想象
sys.path[0]
对于
pdb
python
来说是不一样的。虽然
sys.path[0]
通常是工作目录,但更安全的做法是只获取当前工作目录(通过
os.getcwd()
),然后添加到所需的路径上。对于路径操作,
os.path
也更安全,因为无论系统如何,它都会生成有效的路径。
before: sys.path[0] = /path/to/my/script