Как включить определенные .jar файлы с pyinstaller в исполняемый файл? - PullRequest
0 голосов
/ 25 апреля 2018

Как заставить pyinstaller использовать определенный файл .jar при упаковке exe?

Я пытаюсь сгенерировать исполняемый файл, который использует tabula-py lib. Для этой библиотеки требуется файл jar tabula-1.0.1-jar-with-dependencies.jar , который находится в моей папке file.py. Вот некоторые модификации, которые находятся по адресу myfile.spec :

# this is for pandas lib
def get_pandas_path():
    import pandas
    pandas_path = pandas.__path__[0]
    return pandas_path

dict_tree = Tree(get_pandas_path(), prefix='pandas', excludes=["*.pyc"])
a.datas += dict_tree
a.binaries = filter(lambda x: 'pandas' not in x[0], a.binaries)

# this is for tabula-py
jar = 'tabula-1.0.1-jar-with-dependencies'
jar_path = 'C:\\Users\\jaquedeveloper\\Documents\\freelancer\\bot\\' + jar
coll = COLLECT(exe,
       a.binaries,
       a.zipfiles,
       a.datas,
       [(jar, jar_path, 'PKG')],
       strip=None,
       upx=True,
       name='test')

Тем не менее ошибка сохраняется. Когда я запускаю свой код из командной строки, функция read_pdf () из tabula-py, которая использует java jar, работает нормально, отлично.

Но когда я генерирую исполняемый файл с помощью команды спецификации pyinstaller, он не может выполнить эту функцию, выдавая ошибку ниже:

Невозможно получить доступ к jarfile C: \ Users \ jaquedeveloper \ AppData \ Local \ Temp_MEI58442 \ tabula \ tabula-1.0.1-jar-with-dependencies.jar

Файл не находится в этой папке, и папка tabula не существует. У меня есть файл в той же папке исполняемого файла. Как я могу заставить скрипт использовать его? Как я могу импортировать jar из определенного пути к исполняемому файлу вместо использования папки _MEI?

Эта проблема также сообщалась здесь .

...