Recommended Free Tools
Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
The error PDFInfoNotInstalledError: Unable to get page count. Is Poppler installed and in PATH? means the program cannot find Poppler’s pdfinfo utility. Install Poppler using your operating system’s package manager, make sure the executable is visible to the same environment that runs your code, then verify it with pdfinfo -v. Installing the Python package that calls Poppler, such as pdf2image, does not install the system utility.
What the error actually means
pdfinfo is a command-line utility distributed with Poppler. Libraries such as Python’s pdf2image use it to inspect a PDF and determine its page count before rendering pages. If the executable is missing, outside PATH, or installed in a different machine or container, the wrapper raises an error such as:
PDFInfoNotInstalledError: Unable to get page count. Is Poppler installed and in PATH?
This is normally an environment problem, not a damaged PDF. There are two separate installations:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
- Python wrapper: for example,
python -m pip install pdf2image. - System dependency: Poppler, which provides
pdfinfoand other PDF utilities.
Installing only the wrapper leaves the second dependency unresolved. Databricks describes pdfinfo as coming from the Linux poppler-utils package and recommends installing it with a system package manager. The pdf2image installation guidance likewise treats Poppler as a separate, cross-platform requirement.
#1 Best Overall
Install Poppler on your platform
Ubuntu and Debian
Install the package that contains the command-line utilities:
sudo apt-get update
sudo apt-get install -y poppler-utils
Confirm that the shell can see the executable:
command -v pdfinfo
pdfinfo -v
The first command should print a path, and the second should print a Poppler version. If your application runs in Docker, a notebook, a CI job, or a managed workspace, run these commands inside that runtime or add the package to its image/build steps. Installing it on your laptop does not make it available inside a separate Linux environment.
macOS
With Homebrew installed, run:
brew install poppler
Then check discovery:
command -v pdfinfo
pdfinfo -v
If a terminal opened before the installation cannot find the command, open a new terminal or reload the shell environment. A graphical application launched from Finder may use a different environment from your interactive shell; verify the path from the process that actually runs the PDF code.
Windows
Install a Poppler build appropriate for your Windows environment, then add the build’s bin directory to PATH. The exact binary distributor can vary, so use a source you trust and follow its current packaging instructions. Do not assume that downloading a folder is enough: the directory containing pdfinfo.exe must be discoverable by the application.
After updating PATH, open a new PowerShell or Command Prompt window and run:
where.exe pdfinfo
pdfinfo -v
where.exe should show the full path to pdfinfo.exe. If your PDF library supports an explicit Poppler directory, pass the path to the folder containing the binaries instead of relying on global PATH. This is useful when you cannot change machine-wide environment variables or when multiple Poppler versions are installed.
Conda environments
Conda-forge provides Poppler as an environment package:
conda install -c conda-forge poppler
python -m pip install pdf2image
Activate the same environment before running your program and verify from it:
Rank #2
conda activate YOUR_ENVIRONMENT
pdfinfo -v
The executable must be available in the activated environment used by the code. A Poppler installation in one Conda environment does not satisfy a program started in another environment.
Verify the exact runtime that raises the error
Checking your normal terminal is not sufficient when the failing code runs in a notebook kernel, web worker, scheduled job, container, virtual machine, or IDE-launched interpreter. Diagnose from that same runtime.
- Start the exact interpreter, notebook kernel, container shell, or service account that runs the PDF operation.
- Use the platform command-discovery tool:
command -v pdfinfoon Unix-like systems orwhere.exe pdfinfoon Windows. - Run
pdfinfo -vand record whether it returns a version or a “not found” message. - Check which Python interpreter is executing the wrapper with
python -c "import sys; print(sys.executable)". - Restart the shell, notebook kernel, IDE, worker, or service after changing
PATH.
This small Python check reports what the running interpreter can discover:
import shutil
import subprocess
pdfinfo = shutil.which("pdfinfo")
print("pdfinfo:", pdfinfo)
if pdfinfo is None:
raise RuntimeError("pdfinfo is not visible to this Python process")
result = subprocess.run([pdfinfo, "-v"], text=True, capture_output=True)
print(result.stdout or result.stderr)
If this script reports None while your terminal finds the command, the process environments differ. Pass an explicit Poppler path where supported or fix the service’s environment rather than reinstalling the Python wrapper.
Use pdf2image after Poppler is available
Install the Python package separately:
python -m pip install pdf2image
When pdfinfo is on PATH, a basic conversion looks like this:
from pdf2image import convert_from_path
pages = convert_from_path("document.pdf")
for number, page in enumerate(pages, start=1):
page.save(f"page-{number}.png")
If Poppler is installed in a nonstandard location and your pdf2image version supports an explicit path, supply the directory containing the Poppler binaries:
from pdf2image import convert_from_path
pages = convert_from_path(
"document.pdf",
poppler_path=r"C:pathtopopplerbin",
)
Use the path to the bin directory, not the parent archive directory. On Unix-like systems, you normally omit poppler_path when the package manager has placed pdfinfo on PATH.
Free tools Windows power users keep installed
One-click scans. No signup required.
Common causes and fixes
“I installed pdf2image, but the error remains”
pdf2image is a Python interface; it does not replace the Poppler installation. Install Poppler with the operating-system or Conda command above, then verify pdfinfo -v from the same runtime.
Rank #3
- hole punched
- high quality card stock
- 4 pages
- made in USA
- keyboard shortcuts
“The command works in my terminal but not in Python”
The Python process may have started before PATH changed, may use another interpreter, or may be launched by an IDE, service manager, notebook, or GUI with a different environment. Restart that process and print shutil.which("pdfinfo") from inside it. An explicit Poppler path is an alternative when the library supports it.
“It works locally but fails in Docker or CI”
Containers and CI runners have their own filesystems. Add the Poppler package installation to the image or job setup and verify it during the job. A host installation is not inherited by a container unless the executable is deliberately provided there.
“I installed a package named poppler, but pdfinfo is missing”
Package names differ by platform. On Ubuntu and Debian, the command-line utilities package is poppler-utils. Confirm the result with command -v pdfinfo and pdfinfo -v instead of judging by the package name alone.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstall“Windows still says pdfinfo is not recognized”
Check that pdfinfo.exe is actually inside the directory added to PATH, that the entry points to the bin folder, and that you opened a new shell after editing the variable. Use where.exe pdfinfo. If it still returns nothing, configure the application’s Poppler directory directly if that option exists.
“The error changed to a PDF-specific failure”
Once pdfinfo runs, the original missing-dependency problem is resolved. A subsequent message may concern a corrupt, encrypted, malformed, or inaccessible PDF. Test the utility directly to separate dependency discovery from document processing:
pdfinfo document.pdf
If that command cannot open the file, check the file path, permissions, encryption, and whether the file is actually a PDF.
Environment and deployment checklist
- Poppler is installed, not just the Python wrapper.
- The package matches the operating system:
poppler-utilson Ubuntu/Debian, Homebrew Poppler on macOS, a trusted Windows build, or Conda-forge Poppler. pdfinfo -vsucceeds in the same runtime as the application.- The process was restarted after a
PATHchange. - For containers, notebooks, managed workspaces, and CI, installation occurs inside the actual execution environment.
- On Windows, the Poppler
bindirectory is onPATHor supplied through the library’s explicit path option. - The input file is readable and can be inspected directly with
pdfinfo document.pdf.
Or skip the browser setup
If your real task is creating a PDF or image of a public web page rather than converting an existing local PDF with pdf2image, ScreenshotNeo can do the capture through one HTTP request. It is a separate workflow, not a fix for a missing Poppler executable in an existing pdf2image application.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →ScreenshotNeo accepts a URL and returns a PNG, JPEG, WebP, or PDF. Before capture it accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be disabled. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the result with X-Page-Verdict and X-Billed headers. Its MCP server exposes take_screenshot, get_page_info, and capture_pdf to Claude, Cursor, and other MCP clients.
See the complete parameter reference in the ScreenshotNeo documentation. A direct cURL request is:
Rank #4
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
The equivalent Python request is:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
And Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
Every plan includes the features, including full-page and lazy-image capture, CSS-selector element capture, device and retina settings, PDF paper and page controls, custom CSS or JavaScript, waits, request blocking, headers, cookies, geolocation, transparent backgrounds, resizing, caching, signed links, asynchronous webhooks, bulk capture for up to 100 URLs per call, usage reporting, and an OpenAPI specification. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account to try it.
FAQ
Does Poppler replace a PDF reader?
No. Poppler supplies command-line PDF utilities used by applications; installing it does not install a desktop viewer or change which program opens PDFs.
Should I add Poppler to a project’s Python requirements file?
Keep the Python package and system dependency documented separately. A Python requirements file can install pdf2image, but your operating-system package, container image, or Conda environment must provision Poppler.
Can I solve the error by changing the input PDF?
Usually not. First make pdfinfo -v work. Only after the executable is available should you investigate a particular file’s format, permissions, encryption, or corruption.
Frequently Asked Questions
Does Poppler replace a PDF reader?
No. Poppler supplies command-line PDF utilities used by applications; installing it does not install a desktop viewer.
Should Poppler be listed in Python requirements.txt?
Document the Python wrapper and the system or Conda Poppler dependency separately; requirements.txt alone cannot install the operating-system utility.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsCan changing the input PDF fix this error?
Not usually. Verify that pdfinfo itself runs before troubleshooting a particular file.
The Bottom Line
Install Poppler’s utilities, verify pdfinfo -v from the exact runtime running your code, and configure that runtime’s PATH or explicit Poppler directory. On Ubuntu and Debian the package is poppler-utils; on macOS use Homebrew, on Windows expose the Poppler bin directory, and in Conda install from conda-forge.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

