我想创建一个可以部署到其他计算机上的exe。该程序必须能够读取pdf并将其转换为图像,但我不希望其他用户下载依赖项。
我的理解是py2image和wand都需要外部依赖项,如果转换为exe,其他用户也需要自己下载依赖项。
还有其他可用选项/解决方法吗?
答案 0 :(得分:1)
实际上,我花了一些时间来解决这个问题,但我认为这是值得的。 您需要仔细执行所有步骤才能使其正常工作。
pip install pdf2image
安装pdf2image。myproject
。converter.py
内创建脚本myproject
,并添加以下代码。myproject
内创建另一个目录,并将其命名为poppler
。poppler
目录中。尝试测试pdfimages.exe
是否有效。pyinstaller converter.py -F --add-data "./poppler/*;./poppler" --noupx
converter.exe myfile.pdf
一样运行。结果将在可执行文件旁边的output
目录内创建。 converter.py
:
import sys
import os
from pdf2image import convert_from_path
def current_path(dir_path):
if hasattr(sys, '_MEIPASS'):
return os.path.join(sys._MEIPASS, dir_path)
return os.path.join(".", dir_path)
if __name__ == "__main__":
if len(sys.argv) < 2:
print("PASS your PDF file: \"converter.exe myfile.pdf\"")
input()
sys.exit(0)
os.environ["PATH"] += os.pathsep + \
os.pathsep.join([current_path("poppler")])
if not os.path.isdir("./output"):
os.makedirs("output")
images = convert_from_path(sys.argv[-1], 500)
for image, i in zip(images, (range(len(images)))):
image.save('./output/out{}.png'.format(i), 'PNG')
PS::如果愿意,可以添加GUI并为pdf2images
添加更多设置。
答案 1 :(得分:0)
在尝试使用pyinstaller用pyqt5和pdf2file模块制作.exe文件时遇到了同样的问题。 如果您需要添加在PyQt5中创建的GUI,请不要在pyinstaller命令中添加--windowed。那毁了我两天的工作