2014-04-23 33 views
0

我已經在Python中用兩種功能(例如A和B)編寫了代碼。當我通過終端運行這些程序時,它工作得很好。 Python代碼包括scapy模塊和PySide GUI。 現在,我想要一個會自動運行相同程序的圖標,所以我寫了一個.desktop文件。 .desktop文件如下所示。所有功能都不能在程序運行中通過.desktop文件圖標

[Desktop Entry] 
Type=Application 
Name=Covert Channel - Detection 
Exec=python /root/Documents/path-to-code/detection.py 
Icon=/root/Downloads/index.jpg 
Terminal=false 

現在,問題是,在兩個功能A和B中,只有A正在工作。 我的朋友對一些不同的代碼有不同的問題(使用不同的語言)

注意:工作操作系統是Fedora 20在VMWare中的32位,我以root身份登錄。

+0

您是否需要設置工作目錄?您在使用終端時從哪個目錄運行程序? – Jasper

+0

對不起,但我沒有得到你。但代碼位於/ root/Documents/path-to-code /目錄中。在運行終端時,我執行python /root/Documents/path-to-code/detection.py。在.desktop文件中,我具體說明了該命令。 Exec = python /root/Documents/path-to-code/detection.py – Rob

+0

如果當前目錄是/'root/docs/path-to-code',那麼你可以改變'python/root/docs/path-to-code/detection.py',或者如果當前目錄是其他內容並且您運行相同的命令。 – Jasper

回答

0

(使用的答案,而不是評論使用更好的格式)

這可能是由於錯誤的工作目錄。考慮以下示例:

testfile = open("testfile.txt", 'w') 
testfile.write("TEST") 
testfile.close() 

存儲在文件/tmp/subdir/test.py中。如果我現在打開一個終端,執行以下操作:

cd /tmp/subdir 
python /tmp/subdir/test.py 

testfile.txt/tmp/subdir創建。但是,我也可以做

cd /tmp 
python /tmp/subdir/test.py 

testfile.txt將在/tmp被創建,因爲它是當前工作目錄。您甚至可以從您的主目錄呼叫python /tmp/subdir/test.py,並且將在那裏創建testfile.txt。現在有可能「功能A」適用於任何當前工作目錄(cwd),「功能B」要求cwd爲例如/root/Documents/path-to-code/

也許https://askubuntu.com/questions/50085/setting-the-working-directory可能會有所幫助。

+0

非常感謝。我沒有寫出完整的文件地址。 – Rob

相關問題