如何检查在virtualenv中运行的脚本是否访问全局python

如何检查在virtualenv中运行的脚本是否访问全局python,python,virtualenv,sudo,Python,Virtualenv,Sudo,我有大型python脚本script.py,我可以在virtualenv中成功运行它 (virtualenv) user@host:~$ python script.py 但是,当我想将其作为sudo运行时,我使用virtualenv的python路径 (virtualenv) user@host:~$ <path-to-virtualenv>/bin/python script.py (virtualenv)user@host:~$/bin/python script.py

我有大型python脚本
script.py
,我可以在virtualenv中成功运行它

(virtualenv) user@host:~$ python script.py
但是,当我想将其作为sudo运行时,我使用virtualenv的python路径

(virtualenv) user@host:~$ <path-to-virtualenv>/bin/python script.py
(virtualenv)user@host:~$/bin/python script.py
但这会引起错误。我怀疑它正在访问某个全局python包。是否有办法检查运行的脚本/应用程序是否正在访问全局python包


[注意]脚本太大,我无法逐行调试它

您可以使用以下跟踪模块:

按以下方式运行:

<path to virtualenv>/python -m trace filetoexec.py
/python-m跟踪文件toexec.py

跟踪有很多选项,可以查看文件在做什么,-t选项逐行转储所有内容,您可以查看从何处导入的模块。

错误是什么?错误非常特定于应用程序,但通过virtualenv python包进行回溯跟踪。但我猜在到达错误点之前发生了一些错误,而这种错误可能是由于全局python包而发生的。顺便说一句,我的global和virtualenv中有许多常见的软件包。它们的版本不同。错误是什么?不知道错误就不可能知道发生了什么。具体的错误消息是什么?如果它确定了导致错误的代码行,那么该代码行的源代码是什么?