我创建了一个虚拟环境,并在其中编写了一个Scapy项目。为此我写了一些模块和包,并将它们放在环境site-packages文件夹中。现在,当我使用source bin/activate
进入环境并尝试使用sudo
执行脚本时,我放入虚拟环境中的某些模块无法找到site-packages文件夹。当我作为普通用户执行它时,找到了模块,但是当然,脚本不能工作,因为它需要超级用户权限。我该如何解决这个问题?
(Project)user@pc ~/git/Fuzzing/src $ python BACnetMonitoring.py
WARNING: No route found for IPv6 destination :: (no default route?)
Traceback (most recent call last):
File "BACnetMonitoring.py", line 17, in <module>
webRequest_timeout=1
File "/home/user/git/Fuzzing/local/lib/python2.7/site-packages/BACnetMonitor.py", line 78, in __init__
self._socket = conf.L2socket(iface=self._iface)
File "/home/user/git/Fuzzing/local/lib/python2.7/site-packages/scapy/arch/linux.py", line 414, in __init__
self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type))
File "/usr/lib/python2.7/socket.py", line 187, in __init__
_sock = _realsocket(family, type, proto)
socket.error: [Errno 1] Operation not permitted
(Project)user@pc ~/git/Fuzzing/src $ sudo python BACnetMonitoring.py
Traceback (most recent call last):
File "BACnetMonitoring.py", line 7, in <module>
import BACnetMonitor
ImportError: No module named BACnetMonitor
(Project)user@pc ~/git/Fuzzing/src $
答案 0 :(得分:1)
sudo
不会继承您的环境。指定Project的python可执行文件的完整路径。
使用和不使用sys.executable
查看sudo
。