Python subprocess.call(), возвращающий Доступ запрещен [ошибка 5] в Django Deployed App в Windows с HeliconZoo

Хорошо, я начинаю испытывать головную боль, чтобы решить эту проблему, и теперь я решаю обратиться за помощью здесь, в стеке потока. Во-первых, дайте мне знать, представьте, что я пытаюсь сделать:

Мое приложение django на данный момент довольно простое (но я ожидаю, что оно будет развиваться в будущем), оно только принимает запрос, отображает шаблон, который имеет три варианта по выбору пользователя. Эти параметры являются преобразованиями форматов файлов с использованием AutoCAD (DXF в DWG, DWG в DXF и DXF в PDF). Таким образом, пользователь выбирает одну опцию, выбирает входные файлы, и на сервере я вызываю внешнюю программу для выполнения задачи и, наконец, она отвечает пользователю zip-файлом.

Вот факты:

1) Абсолютно ВСЕ прекрасно работает на сервере разработки django. Но, поскольку все в жизни не так просто, я не могу (по понятным причинам) использовать сервер разработки django в производственной среде. Поэтому я попытался развернуть свое приложение в разработке.

2) Я развернул его в apache, используя apache mod_wsgi (это рекомендовано django docs). Все работает отлично, кроме одного: AutoCAD вызывается внешней программой и никак не отвечает. Я получаю RPC_E_CALL_REJECTED, когда пытаюсь выполнить любую команду в AutoCAD. Я думаю, что это какая-то проблема с COM-объектами, которые AutoCAD использует для выполнения этой задачи, но я не уверен в этом, и я не знаю, как решить эту проблему. Есть ли у вас какие-либо идеи?

3) Я забыл про apache + mod_wsgi на некоторое время и начал использовать HeliconZoo. Опять же, все работает нормально, но HeliconZoo не может использовать subprocess.call(), потому что я получаю Доступ запрещен [ошибка 5]. Я проверил все разрешения в папках, которые используются, и, по-видимому, он имеет все разрешения.

Вот код, который я использую во всех сценариях, описанных выше:

 def convert(input_path, template, output_path, method_name):
     exit_code = subprocess.call([CONVERSOR_EXE_PATH, input_path, PDF_TEMPLATE_PATH, output_path, method_name])
     return exit_code

У кого-нибудь есть король идей по поводу этих проблем? Спасибо, парни!

0 ответов

Другие вопросы по тегам