You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyLaTeX生成PDF时出现WinError 5访问被拒绝问题求助

问题描述

代码

import pylatex as pl
#import latexmk

doc = pl.Document()
doc.append(pl.Math(data=['x^2+3x+1']))
path = r"C:/Users/maach/OneDrive/Documents/Python Scripts/mathfile"
doc.generate_pdf(clean_tex=False,compiler=r'C:/Users/maach/anaconda3/pkgs/latexmk-4.76-h57928b3_0\Scripts', filepath = path)

报错信息

runfile('C:/Users/maach/OneDrive/Documents/Python Scripts/untitled1.py', wdir='C:/Users/maach/OneDrive/Documents/Python Scripts')
Traceback (most recent call last):
文件 ~\OneDrive\Documents\Python Scripts\untitled1.py:7
doc.generate_pdf(clean_tex=False,compiler=r'C:/Users/maach/anaconda3/pkgs/latexmk-4.76-h57928b3_0\Scripts', filepath = path)
文件 ~\anaconda3\lib\site-packages\pylatex\document.py:250 in generate_pdf
output = subprocess.check_output(command,
文件 ~\anaconda3\lib\subprocess.py:424 in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
文件 ~\anaconda3\lib\subprocess.py:505 in run
with Popen(*popenargs, **kwargs) as process:
文件 ~\anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py:108 in init
super(SubprocessPopen, self).init(*args, **kwargs)
文件 ~\anaconda3\lib\subprocess.py:951 in init
self._execute_child(args, executable, preexec_fn, close_fds,
文件 ~\anaconda3\lib\subprocess.py:1420 in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
PermissionError: [WinError 5] 访问被拒绝

已尝试操作:

  • Anaconda环境中安装Perl
  • 更新pip
  • 以管理员身份运行Spyder
  • 给latexmk所在文件夹和目标目录设置完全权限

解决方案

1. 修正compiler参数指向

当前compiler参数仅指向Scripts文件夹,但pylatex需要具体的latexmk可执行文件路径。Windows下latexmk的可执行文件为latexmk.exe,修改代码如下:

doc.generate_pdf(
    clean_tex=False,
    compiler=r'C:/Users/maach/anaconda3/pkgs/latexmk-4.76-h57928b3_0/Scripts/latexmk.exe',
    filepath=path
)

2. 避开OneDrive路径权限限制

OneDrive目录受同步机制影响,权限设置可能失效。建议将目标路径改为本地非OneDrive目录:

path = r"C:/Users/maach/Documents/Python Scripts/mathfile"

3. 验证Perl环境有效性

在Spyder终端执行以下命令,确认Perl可正常调用:

perl -v

若命令无法识别,需将Anaconda的Perl路径(如C:/Users/maach/anaconda3/pkgs/perl-xxx/bin)添加到系统PATH环境变量,之后重启Spyder。

4. 手动测试latexmk运行状态

在终端执行以下命令,验证latexmk本身是否能正常工作:

cd "C:/Users/maach/OneDrive/Documents/Python Scripts"
latexmk -pdf mathfile.tex

若手动执行也报错,重新安装latexmk及依赖:

conda install latexmk perl -c conda-forge

内容的提问来源于stack exchange,提问作者ASD Researcher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:17:20