pyinstaller 要求提供已在 venv 和 -p 中确定提供的依赖项

pyinstaller asks for dependency that has assuredly been provided in venv and -p

尝试使用 pyinstaller 将可执行 python 模块转换为 .exe。所以我

现在主命令访问 pyinstaller.exe。本身什么都不知道 除了我给它的 -p 参数之外的新环境,我希望这就足够了:

C:\python39\scripts\pyinstaller
  -p "X:\paws\src\shared\python;X:\paws\PyEnv\Py39\Lib\site-packages;
    X:\paws\PyEnv\Py39\Lib\site-packages\jsonschema;
    X:\paws\PyEnv\Py39\Scripts"
  -n ptGui
  %DIR_BASE%\prototype_gui\__main__.py

唉,我得到了:

  File "c:\python39\lib\site-packages\pkg_resources\__init__.py", line 785, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'jsonschema' distribution was not found
  and is required by the application

但是,我非常肯定那个环境(!)安装 打包成功:

(Py39) X:\paws\PyEnv\Py39\Lib\site-packages>ls -1 | grep jsonschema
jsonschema
jsonschema-3.2.0.dist-info

很确定这是一些初学者的误解。你们有没有人看到它, 并会告诉我如何做对吗?

我可以回答我自己的问题。显然在基本安装上安装 pyinstaller 是错误的,从那里使用它,并期望一切正常。

我现在使用

而不是 C:\python39\python -m pip install pyinstaller
X:\PyEnv\Py39\Scripts\activate
python -m pip install pyinstaller

产生特定于环境的 X:\PyEnv\Py39\Scripts\pyinstaller.exe。使用那个一切都很好。