Как установить модуль Python в формате PDFNet?

Я бегал кругами, пытаясь понять, как заставить мое приложение Django распознавать пробную версию PDFNet:

https://pypi.python.org/pypi/PDFTron-PDFNet-SDK-for-Python/5.7

Я попытался добавить файлы в мой каталог ~/usr/bin, я попытался поместить их в каталог bin моего virtualenv. Ни один не работал. Я прочитал всю документацию, которую я могу найти. Я слишком новичок в разработке на Python, чтобы смотреть на этот пакет и знать, как его установить и использовать в своем проекте.

Пожалуйста помоги!

Обновление Я попытался создать папку приложения и поместить этот компонент в список приложений в список приложений, но когда я запускаю код для запуска приложения, я получаю следующую ошибку:

Библиотека не загружена: @rpath/libPDFNetC.dylib

Я поместил все файлы lib в эту папку в моем проекте:

  • __init.py (пусто)
  • _PDFNetPython.so
  • libPDFNetC.dylib
  • PDFNetPython.py
  • PDFNetRuby.bundle

Я использовал следующий код импорта в верхней части py-файла, на котором пытался использовать компонент:

import site
site.addsitedir("../pdfnetc")
from pdfnetc.PDFNetPython import *

Я поместил файлы lib в папку приложения с именем pdfnetc. как только я получил это, операторы импорта больше не были перечислены как необоснованные pycharm.

вот трассировка стека:

Traceback (most recent call last):
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 2217, in <module>
    globals = debugger.run(setup['file'], None, None)
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1643, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "/Users/ntregillus/myapp/manage.py", line 12, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/ntregillus/Envs/myapp/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/Users/ntregillus/Envs/myapp/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
    django.setup()
  File "/Users/ntregillus/Envs/myapp/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/ntregillus/Envs/myapp/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/Users/ntregillus/Envs/myapp/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/ntregillus/myapp/statements/models.py", line 12, in <module>
    from statements.managers import StatementTemplateManager, StatementManager
  File "/Users/ntregillus/myapp/statements/managers.py", line 8, in <module>
    from statements.utils import render_to_pdf, StatementContextBuilder
  File "/Users/ntregillus/myapp/statements/utils.py", line 23, in <module>
    from pdfnetc.PDFNetPython import *
  File "/Users/ntregillus/myapp/pdfnetc/PDFNetPython.py", line 28, in <module>
    _PDFNetPython = swig_import_helper()
  File "/Users/ntregillus/myapp/pdfnetc/PDFNetPython.py", line 24, in swig_import_helper
    _mod = imp.load_module('_PDFNetPython', fp, pathname, description)
ImportError: dlopen(/Users/ntregillus/myapp/pdfnetc/_PDFNetPython.so, 2): Library not loaded: @rpath/libPDFNetC.dylib
  Referenced from: /Users/ntregillus/myapp/pdfnetc/_PDFNetPython.so
  Reason: image not found

1 ответ

Ниже приведены шаги по установке модуля PDFNet:

  1. Загрузите готовые двоичные файлы Python и Ruby. Убедитесь, что вы загрузили правильную архитектуру для своего интерпретатора Python.
  2. Извлеките загруженный zip-файл и перейдите к нему.
  3. Перейдите в каталог /PDFNetC/Lib загружаемого Python SDK и выполните:
> chmod a+x fix_rpaths.sh
./fix_rpaths.sh

Я не разбираюсь в django, но внимательно посмотрю на примеры py файлов, которые есть в SDK. Например, посмотрите на папку PDFNetC/Samples/AddImageTest/PYTHON. Там есть файл.py, и посмотрите на первые 4 строки кода, они указывают, что нужно загрузить.

Обратите внимание, что вам нужны все файлы, которые находятся в папке PDFNetC/Lib, включая файл PDFNetC.dll.

Если это не помогло, пожалуйста, опубликуйте точное (первое) сообщение об ошибке, которое вы получите.

Это просто отлично работает для меня, когда я пытаюсь запустить скрипт оболочки, кстати, используя ithon в качестве моего языка программирования для pdfnet,

Попробуйте использовать эти команды для запуска pdfn

#!/bin/sh
TEST_NAME=PDFATest
export LD_LIBRARY_PATH=../../../PDFNetC/Lib
python -u $TEST_NAME.py

PDFATest определяет код Python, и тогда экспорт получит необходимые пакеты, такие как PDFNet, который находится в

../../Lib

убедитесь, что вы используете этот файл в lib, а затем запустите свой код, и у вас не возникнет проблем с PDFNet, но я не отвечу на этот вопрос в отношении django, но уверен, что это поможет вам.

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