找不到pyinstaller模块fake_useragent

问题描述 投票:0回答:2

执行 pyinstaller 分布式可执行文件时未找到模块

使用了hiddenimport,它被导入但仍然不起作用

pyinstaller 命令:-

pyinstaller --hiddenimport flask --hiddenimport fake_useragent -F --add-data "templates;templates" main.py

运行 dist/main.exe 后的输出:-

Traceback (most recent call last):
  File "fake_useragent\utils.py", line 142, in load
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\mdreh\\AppData\\Local\\Temp\\_MEI193242\\fake_useragent\\data\\browsers.json'
Unable to find local data/json file or could not parse the contents using importlib-resources. Try pkg-resource next.
Traceback (most recent call last):
  File "fake_useragent\utils.py", line 128, in load
  File "importlib\resources\_common.py", line 22, in files
  File "importlib\resources\_common.py", line 53, in get_package
  File "importlib\resources\_common.py", line 44, in resolve
  File "importlib\__init__.py", line 126, in import_module
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1142, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'fake_useragent.data'
Could not find local data/json file or could not parse the contents using pkg-resource. Fallback to external resource.
Traceback (most recent call last):
  File "fake_useragent\utils.py", line 128, in load
  File "importlib\resources\_common.py", line 22, in files
  File "importlib\resources\_common.py", line 53, in get_package
  File "importlib\resources\_common.py", line 44, in resolve
  File "importlib\__init__.py", line 126, in import_module
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1142, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'fake_useragent.data'

不知道为什么找不到模块

data
因为当我运行正常的
.py
文件时它工作正常

而且

12631 INFO: Analyzing hidden import 'fake_useragent'
也没有给出任何错误。

也许

fake_useragent
需要额外的文件,如果是这样,请帮助我

python pyinstaller exe
2个回答
2
投票

基本上,pyinstaller无法检测到

Fake_UserAgent
使用的文件,这些文件是缓存文件,所以修复它的一种方法是禁用那些保存的缓存文件

import fake_useragent

useragent = fake_useragent.UserAgent(use_external_data=True)

通过传递

True
,我们命令useragent模块使用未保存在我们本地计算机中的外部数据

更多信息可以在这里找到


0
投票

重新安装 python 后,我的 pyinstaller 开始抱怨 fake-useragent。

这对我有用。 创建 pyinstaller 时添加以下内容:

--collect-datas=fake_useragent
因此,在我的示例中,当我使用 cmd 创建 exe 时: pyinstaller --collect-data freezedict --collect-datas=fake_useragent --onefile -w my_project.py

用户代理也不能以 .exe 格式工作。

© www.soinside.com 2019 - 2024. All rights reserved.