2016-01-13 112 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

相關問題