2014-04-23 4 views
0

J'ai écrit un code en python avec deux fonctionnalités (disons A et B). Quand je cours ces programmes à travers le terminal, cela fonctionne parfaitement bien. Les codes Python incluent le module scapy et l'interface graphique PySide. Maintenant, je voulais une icône qui va exécuter le même programme automatiquement, j'ai donc écrit un fichier .desktop. Le fichier .desktop est illustré ci-dessous.Toutes les fonctionnalités ne fonctionnent pas dans le programme exécuté via .desktop icône du fichier

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

Maintenant, le problème est que sur deux fonctionnalités A et B, seul A fonctionne. Mon ami a le même problème avec un code différent (dans une langue différente)

Remarque: OS de travail est Fedora 20 32 bits dans VMWare et je suis connecté en tant que root.

+0

Avez-vous besoin de définir un répertoire de travail? De quel répertoire exécutez-vous le programme lorsque vous utilisez le terminal? – Jasper

+0

Désolé mais je ne vous ai pas eu. Mais le code se trouve dans/root/Documents/path-to-code/directory. Pendant l'exécution du terminal, j'exécute python /root/Documents/path-to-code/detection.py. Dans le fichier .desktop, je spécifie la commande. Exec = python /root/Documents/path-to-code/detection.py – Rob

+0

Cela peut faire la différence si le répertoire courant est/'root/docs/chemin-vers-code' et que vous faites ensuite' python/root/docs/path-to-code/detection.py' ou si le répertoire courant est quelque chose d'autre et que vous exécutez la même commande. – Jasper

Répondre

0

(en utilisant la réponse au lieu de commentaire à utiliser plus belle mise en forme)

Cela peut être dû à des répertoires de travail mal. Prenons l'exemple suivant:

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

stockées dans le fichier /tmp/subdir/test.py. Si je maintenant ouvrir un terminal et procédez comme suit:

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

le testfile.txt est créé dans /tmp/subdir. Mais je peux aussi faire

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

et testfile.txt seront créés dans /tmp, car il est le répertoire de travail en cours. Vous pouvez même appeler python /tmp/subdir/test.py à partir de votre répertoire personnel, et le testfile.txt y sera créé. Il est maintenant possible que "la fonctionnalité A" fonctionne avec n'importe quel répertoire de travail courant (cwd) et "la fonctionnalité B" exige que le cwd soit par exemple /root/Documents/path-to-code/.

Peut-être https://askubuntu.com/questions/50085/setting-the-working-directory pourrait aider.

+0

Merci beaucoup. Je n'ai pas écrit une adresse complète d'un fichier. – Rob

Questions connexes