我有一台基于x64的Windows 10电脑。我试图在这里获得这个Python工具:运行https://github.com/JoshData/pdf-diff,当它从Python文件运行一个名为'subprocess.py‘文件的行时,它会碰到这个错误。
我发布了这个问题的完整屏幕截图的错误,但仍在等待响应:https://github.com/JoshData/pdf-diff/issues/30
请注意,在安装此github工具之前,i: 1)安装了Python3.6(尝试了32位和64位),目前有32位
2)安装了MicrosoftVisualStudio14.0构建工具(C++构建工具)
3)在命令提示符中,运行命令:pip install lxml,以便下载xml库并满足该工具的要求
4)此外,还检查了其他堆栈溢出线程,表明“文件未找到”错误是由于在regedit与Python的subprocess.py中设置的“COMSPEC”变量不同所致。
在windows键注册表中,“ComSpec”键设置为:%SystemRoot%\system32\cmd.exe;
在python中,这样进行子进程调用(最后一行是997):
if shell:
startupinfo.dwFlags |= _winapi.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = _winapi.SW_HIDE
comspec = os.environ.get("COMSPEC", "cmd.exe")
args = '{} /c "{}"'.format (comspec, args)
#Start the process
try:
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
# no special security
None, None,
int(not close_fds),
creationflags,
env,
os.fspath(cwd) if cwd is not None else
None,
startupinfo)我没有想法了,我觉得程序的要求已经满足了。因此,当我在提示符下运行命令以获得我的两个PDF文件比较和输出比较时:
C:\Python36\Scripts\pdf_diff>pdf-diff 683000.pdf 17368000.pdf > comparison_output.png*我立即得到以下错误:
Traceback (most recent call last):文件"C:\Python36\Scripts\pdf_diff\pdf-diff-script.py",第11行,在load_entry_point('pdf-diff==0.9.0',‘控制台_脚本’,'pdf-diff')()文件"C:\Python36\lib\site-packages\pdf_diff-0.9.0-py3.6.egg\pdf_diff\command_line.py",第496行中,在load_entry_point= compute_changes(args.files,args.files1,文件"C:\Python36\lib\site-packages\pdf_diff-0.9.0-py3.6.egg\pdf_diff\command_line.py",第14行,在compute_changes docs = serialize_pdf(0,pdf_fn_1,top_margin,bottom_margin),serialize_pdf(1,pdf_fn_2,top_margin,文件"C:\Python36\lib\site-packages\pdf_diff-0.9.0-py3.6.egg\pdf_diff\command_line.py",( bottom_margin)第29行,在serialize_pdf中运行box_generator:文件"C:\Python36\lib\site-packages\pdf_diff-0.9.0-py3.6.egg\pdf_diff\command_line.py",第102行,在mark_eol_hyphens for next_box in for: File next_box第64行中,pdf_to_bboxes xml = subprocess.check_output("pdftotext","-bbox",fn,"/dev/stdout")文件"C:\Python36\lib\subprocess.py",第336行,在check_output **kwargs).stdout文件“C:\Python36\lib\subprocess.py”中,第403行以Popen(*popenargs,**kwargs)作为进程:文件"C:\Python36\lib\subprocess.py",第709行,在init restore_signals,start_new_session)文件“C:\Python36\lib\subprocess.py”中,第997行,在_execute_child startupinfo中) FileNotFoundError: WinError 2找不到指定的文件。
发布于 2018-03-28 13:15:40
我想我发现了这里的问题。在安装不同版本的Python的过程中,即2.7和3.6,我弄坏了一些东西。我相信这可能是导入不同的模块的PDF-diff程序。根据手册,PDF程序是为Python 3编写的。所以,我认为上面的问题是版本控制问题。我现在已经从我的机器上删除了Python3.6,因为我需要2.7用于其他项目。
https://stackoverflow.com/questions/49460050
复制相似问题