使用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

