2016-01-13 114 views
0

我创建了一个虚拟环境并在其中编写了一个Scapy项目。为此,我编写了一些模块和包,并将它们放在环境site-packages文件夹中。现在,当我进入环境source bin/activate并尝试执行脚本sudo我放入虚拟环境site-packages文件夹中的某些模块无法找到。当我以普通用户身份执行该模块时,找到该模块,但该脚本当然不起作用,因为它需要超级用户权限。我怎样才能解决这个问题?在虚拟环境中使用sudo执行脚本 - 未找到软件包

(Project)[email protected] ~/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)[email protected] ~/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)[email protected] ~/git/Fuzzing/src $ 

回答

1

sudo不会继承您的环境。指定项目的python可执行文件的完整路径。

看看sys.executable有无sudo

+0

好的,这很有趣。使用'sudo'时,路径是'/ usr/bin/python',而不是'/ home/user/git/Fuzzing/bin/python'。这解释了为什么,但仍然 - 有办法解决这个问题吗? – vicco

+1

*“有没有办法解决这个问题?”* - *“指定项目的python可执行文件的完整路径。”*即:'sudo/home/user/git/Fuzzing/bin/python' – jfs

+0

谢谢,这其实很简单。 – vicco

相关问题