Команда подпроцесса в Django работает на локальном хосте, но не на vps-сервере openlitespeedLinux

Ответить Пред. темаСлед. тема
Anonymous
 Команда подпроцесса в Django работает на локальном хосте, но не на vps-сервере openlitespeed

Сообщение Anonymous »

У меня есть следующий код функции в view.py моего проекта django:
def word_to_pdf_logic(view_func):
def wrapper_function(request, *args, **kwargs):
if request.method == "POST" и request.FILES.get('word_file'):
word_file = request.FILES['word_file']

Код: Выделить всё

        # Generate unique temporary file name
temp_filename = f"{uuid.uuid4()}.docx"
temp_file_path = os.path.join(settings.MEDIA_ROOT, 'word_to_pdf', temp_filename)

# Save uploaded Word file to temporary location
fs = FileSystemStorage(location=os.path.join(settings.MEDIA_ROOT, 'word_to_pdf'))
temp_file = fs.save(temp_filename, word_file)

word_filename = word_file.name
print(f'word_filename : {word_filename}')
print(f'temp_filename : {temp_filename}')

out_path = os.path.join(settings.MEDIA_ROOT, 'word_to_pdf')
# subprocess.call(['lowriter', '--headless', '--convert-to', 'pdf', '--outdir', out_path, temp_file_path])
subprocess.call(['libreoffice', '--headless', '--convert-to', 'pdf', '--outdir', out_path, temp_file_path])

output_pdf_filename = os.path.splitext(word_filename)[0] + '.pdf'
output_pdf_path = os.path.join(settings.MEDIA_ROOT, 'word_to_pdf', temp_filename.replace(temp_filename.split('.')[1],'pdf'))

print(f'output_pdf_filename : {output_pdf_filename}')
print(f'output_pdf_path : {output_pdf_path}')

if output_pdf_path:
# Serve the PDF file for download
with open(output_pdf_path, 'rb') as pdf_file:
print(f'Pdf_file {pdf_file.name}')

response = HttpResponse(pdf_file.read(), content_type='application/pdf')
response['Content-Disposition'] = f'attachment; filename={os.path.basename(output_pdf_path)}'
return response
else:
return HttpResponse("Error converting file to PDF")
else:
return view_func(request, *args, **kwargs)
return wrapper_function
Код нормально работает на локальном хосте, но подпроцесс не работает на размещенном VPS-сервере openlitespeed на хостинге (операционная система — Ubuntu 22.04).
команды libreoffice и lowriter работают как на vps если использовать терминал для преобразования файла Word (doc/docx) в PDF. Но если я использую его через приложение django, это выдает ошибку. Тот же код работает на моем ноутбуке (локальный хост). Я проверил всю необходимую библиотеку,
Я потратил более 15 дней, но решение не найдено. Как решить проблему? Пожалуйста, помогите мне
Я попробовал все альтернативы команды libreoffice, а также попробовал модули подпроцесса, такие как вызов, запуск, popen. Все работают в терминале, но в приложении Django он не конвертирует файл Word в PDF, и я получаю сообщение об ошибке «Файл не найден», и то же самое работает на локальном хосте через Django. Я также проверяю права доступа к папкам, путь и т. д.

Подробнее здесь: https://stackoverflow.com/questions/785 ... espeed-vps
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Библиотека PHP Ratchet работает на локальном хосте, но не на vps
    Anonymous » » в форуме Php
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Перенаправление подстраниц на сервере openlitespeed
    Anonymous » » в форуме Apache
    0 Ответы
    65 Просмотры
    Последнее сообщение Anonymous
  • Исходящий трафик VPS на другой VPS с OpenVPN
    Anonymous » » в форуме Linux
    0 Ответы
    57 Просмотры
    Последнее сообщение Anonymous
  • Simple Recaptcha не работает на VPS -сервере, но работает на другом хостинговом сервере
    Anonymous » » в форуме Php
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Кукловод работает правильно на локальном хосте, но не на моем сервере Ubuntu
    Anonymous » » в форуме Php
    0 Ответы
    50 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Linux»