2017-10-24 4 views
0

他のマシンのpyinstallerからexeアプリケーションを実行する際に問題があります。他のマシンでapp exeを実行できません、python2.7、fpdf、pyinstaller

console output

私が使用し、道以下でpyPDFにフォントを追加しました::

from fpdf import FPDF 

pwd = os.path.realpath(os.path.dirname(sys.argv[0])) + "\\font\\DejaVuSansCondensed.ttf" 

pdf = FPDF(orientation = 'L', unit = 'mm', format='A4') 
pdf.add_page() 
# Add a DejaVu Unicode font (uses UTF-8) 
# Supports more than 200 languages. For a coverage status see: 
# http://dejavu.svn.sourceforge.net/viewvc/dejavu/trunk/dejavu-fonts/langcover.txt 
pdf.add_font('DejaVu', '', pwd, uni=True) 
pdf.set_font('DejaVu', '', 18) 
#then I use pdf.write() to write data 
#save and close pdf file 
pdf.output('C:\\Users\\' + getpass.getuser() + '\\Documents\\pdf_file' + time_stamp + '.pdf', 'F') 

は、私は次の方法でそれを構築しようとした:

それは私がアプリケーションを構築し、PC、上のパスを探しています
pyinstaller app.py 
pyinstaller --onefile app.py 

私はコードを作成するマシンに問題はありません。私は、fpdfやpyinstallerの設定から何らかの出力方法があると思いますが、そうですか?

私はユニコード文字でpdfを作成する必要があります。私はfpdfとpyinstallerモジュールの最新バージョンを使用しています。

私は何か助けに感謝します。

は、あなたがPythonはそれがあることを想定していDejaVuSansCondensed.ttfを持っているので、あなたのマシン上でそれを構築するとき全く問題はありませんが、事前に

答えて

0

、ありがとうございました。しかし、PyInstallerでコンパイルして別のシステムで実行すると、同じ場所(他のシステムには存在しない可能性があります)で探しています。

私は何を示唆していることは、あなたの現在の作業ディレクトリにそのTTFファイルをコピーして、ラインフォントラインを更新(またはあなたのコードに合う似たような)ことです:

pwd = "DejaVuSansCondensed.ttf" 

あなたはまた、それを確認する必要があります.exeはそのファイルにアクセスできます(exeと比較して)。だからあなたはあなたのexeと同じディレクトリにttfファイルをコピーしなければならないので、別のコンピュータで実行すると、あなたのコードはexeが入っているディレクトリを探し、ttfファイルを探します。

+0

解決策が動作します。どうもありがとうございました。 – Marcin

関連する問題