有一个脚本应在32位和64位Windows 7上运行。
void doPrint(Node node){
System.out.println("Creating a printer job...");
PrinterJob job = PrinterJob.createPrinterJob();
if (job != null) {
System.out.println(job.jobStatusProperty().asString());
boolean printed = job.printPage(node);
if (printed) {
job.endJob();
} else {
System.out.println("Printing failed.");
}
} else {
System.out.println("Could not create a printer job.");
}
}
脚本同时使用python 3.4 x64和x86(它们位于单独的文件夹中)工作,但是当我使用pyinstaller UnicodeEncodeError: 'charmap' codec can't encode character '\u2019' in position 103-104 :character maps to <undefined> (From exe console)
创建exe时,64位版本可以正常工作,并且x86因此错误而崩溃。
我使用pip分别为86和64个文件夹安装了pyinstaller。
脚本中的解码/覆盖:
py -m Pyinstaller script.py
信息-从sqlite3数据库中选择的数据。
在位版本上是否存在任何解码差异会导致此错误?
答案 0 :(得分:0)
PyInstaller的输出特定于活动的操作系统和Python的活动版本。这意味着要为以下内容准备发行版:
您可以在该操作系统上以该版本的Python运行PyInstaller。执行PyInstaller的Python解释器是该软件包的一部分,它特定于操作系统和字长。
您是否在32位操作系统中尝试了.exe 32位文件?
答案 1 :(得分:0)
如果在64位系统中同时使用两个版本的Pyinstaller,则必须解决一个问题。 PyInstaller会搜索您当前的环境,并从当前环境中选择Windows重新分发DLL,这对于32位版本是错误的。您需要通过从vcruntime140.dll
替换诸如C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x86\Microsoft.VC140.CRT
之类的DLL文件来提供正确的版本,并将它们放在C:\Users\Username\AppData\Roaming\pyinstaller\bincache01_py37_32bit
的Pyinstaller X86目录中,然后重新生成可执行文件。