Найти - Пользователи
Полная версия: Проблема с запуском приложений через скрипт
Начало » Python для экспертов » Проблема с запуском приложений через скрипт
1 2
XgreshnikX
При написании скриптика возникла такая проблемка:

есть некий скриптик my.py из него подключаю модуль mod.py в модуле есть функция которая получает параметром имя файла который надо завпустить
def run_file(path_file):
Пробовал многое по запуску начиная с
os.startfile(file) 
os.system(file)
os.popen(file)
os.execv(program,args)
process = subprocess.Popen(file, shell=True)
Но он упорно не хочет запускать файл, если подключать модуль просто в интерпретаторе, то без проблем запускается нужное приложение а вот если через скрипт то не хоче. Скрипт вызивается интернет страницей.

Подскажите плиз что я упустил, заранее спосибо
py.user.next
mod.py
def run_file(fname):
import os
os.system(fname)
m.py
import sys
import mod

mod.run_file(sys.argv[1])
[guest@station tmp]$ python3 m.py "echo x"
x
[guest@station tmp]$
py.user.next
[guest@station tmp]$ python3 m.py "list.html"
sh: list.html: команда не найдена
[guest@station tmp]$ python3 m.py "firefox list.html"
py.user.next
XgreshnikX
Скрипт вызивается интернет страницей.
[root@station cgi-bin]# cat t.cgi
#!/usr/bin/env /usr/local/bin/python3

import mod

print("Conent-type: text/html\n")
print("Hello")
[root@station cgi-bin]#
[root@station cgi-bin]# cat mod.py

import os

os.system("echo x > /tmp/xvalue")

[root@station cgi-bin]#
это чтобы проверить всё ли видно
после запуска скрипта напрямую должно отобразиться Hello, а в /tmp появляется файл
XgreshnikX
Немного не понял решение)). Скрипты под виндой. на "“ ругается что не правильный синтаксис.
в my.py есть функция parse, на нее передаю параметр fileField (содержащий в себе имя файла)с помощью формы:

<form action=”./my.py/parse“ method=”GET“ enctype=”multipart/form-data“ name=”form1“ id=”form1“>
<input name=”fileField“ type=”file“ id=”fileField“ value=”“ />
<input type=”submit“ name=”button“ id=”button“ value=”Ок“ /></form>
my.py вот такой:

import mod_doc
def parse(fileField):
path = ”h:\\p\\“ + fileField
mod_doc.run_file(path); \\ловит имя и передает путь правильно

mod.py:
def run_file(path_file):
import subprocess,os,time
#os.startfile(”h:\\p\\t8.docx.html")
os.system(path_file) \\вот собствено ета строчка не запускает файл , путь которого ей передан.

В чем ошибка?
py.user.next
def run_file(path_file):
import os
cmd = "firefox" + " " + path_file
os.system(cmd)
XgreshnikX
если подключать модуль просто в интерпретаторе, то без проблем запускается нужное приложение
чтобы узнать какое имя есть, а какого нет
>>> import os
>>> 'system' in dir(os)
True
>>> 'startfile' in dir(os)
False
>>>
там имён много, чтобы не читать всё

выполни
import os

os.system("h:\\p\\t8.docx.html")
только в оболочке, говоришь запускается файл ?
(мне надо в винду перезагружаться, чтобы просто проверить это)
там не должно так запускаться, хотя я не исключаю, что там это происходит
py.user.next
да, проверил, запускается страница в браузере по умолчанию
приложение можно не указывать
py.user.next
<form action=
это пока не проверял
py.user.next
у меня в браузере под виндой не запускается, а просто выводит содержимое скрипта
размести скрипт на сервере
XgreshnikX
Так дело в том что все работает помимо етого, скрипт на сервере лежит и из него вызиваются функции, я уж с етим работаю а вот дошло дело во визова из функции приложения, так тут все )) Уже перепробовал все методы которые только нашел ,но упорно не хочет(((
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB