実現したいこと
pythonでpdfファイルのパスワード解除させる実行ファイルを作りたいです。《初心者》
解除した対象のpdfファイルを実行ファイルにドラック&ドロップするとパスワード解除されたpdfが別途生成される。
pdfのパスワードは予めコードに記載する
前提
OS:windows10 64bit
Python 3.9.5
pikepdf 7.2.0
pip 23.1.2
コードファイル:pdf.py
実行ファイル作成時のコマンド:pyinstaller pdf.py --onefile
質問内容
pdf.py単体では正常動作しますが、実行ファイル化するとコンソールにメッセージが表示され
パスワード解除されたpdfが生成されません。
実行ファイル化自体はエラー発生なく正常に exeファイルが生成されました。
エラーメッセージ
実行ファイル動作時で、対象のpdfファイルをドラック&ドロップ後、コンソールに下記メッセージが表示されます。
(初心者で下記メッセージの内容を理解するスキルがありません。すみません。)
Traceback (most recent call last):
File "pikepdf_init__.py", line 17, in <module>
File "PyInstaller loader#py i mod02_importers.py", line 385, in exec_module
File "pikepdf_version.py", line 8, in <module>
File "import lib¥metadata.py", line 551, in version
File "import lib¥metadata.py", line 524, in distribution
File "import lib¥metadata.py", line 187, in from_name
import lib.metadata. PackageNotFoundError: pikepdf
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "pdf.py", line 2, in <module>
from pikepdf import Pdf
File "PyInstaller loader #py i mod02_importers.py", line 385, in exec_module
File "pikepdf_init__.py", line 19, in <module>
ImportError: Failed to determine version
[26464] Failed to execute script 'pdf' due to unhandled exception!
該当のソースコード
公開されているコードを一部変更しほぼそのまま使用しています。
下記コードファイルにpdfファイルのドラック&ドロップは正常に動作します。
import os, sys
from pikepdf import Pdf
def unlockPdf (filepath):
PSWD = 'abcdefg" #パスワード
pdf file Pdf .open(filepath, password=PSWD)
newPdf = Pdf.new()
newPdf.pages.extend(pdffile.pages)
OUTPUT_DIR= os.path.dirname(filepath)
newPdf.save(OUTPUT_DIR + '/decrypted.pdf')
FILE_PATH = sys.argv[1]
unlockPdf (FILE_PATH)
試したこと
pip、pyinstallerを、pipコマンドでのバージョンアップしましたが現象変わらず。
他サイト様・個人サイト様で同様の実行ファイル化後に動作しない現象があり、それぞれ解決策が記載されていましたが、本件のコンソール表示のメッセージと同内容が無く挫折しこちらで質問させて頂きました。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/06/24 10:30 編集