pyinstaller 的 ipfsapi 问题

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

我正在运行一个简单的脚本,该脚本使用 ipfsapi 从 IPFS 节点下载和上传文件。一切正常。

但是当使用 Pyinstaller 运行时(我使用

--onefile
选项,但默认设置也会发生同样的情况),我收到以下错误:

Traceback (most recent call last):
File "multiaddr/transforms.py", line 66, in string_iter
File "multiaddr/codecs/__init__.py", line 23, in codec_by_name
...
File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'multiaddr.codecs.idna'

The above exception was the direct cause of the following exception:
Traceback (most recent call last):

File "apt.py", line 9, in <module>
import ipfsapi
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load

multiaddr.exceptions.StringParseError: Invalid MultiAddr '/dns/localhost/tcp/5001/http' protocol dns: Unknown Protocol

[PYI-29889:ERROR] Failed to execute script 'apt' due to unhandled exception!
  • 我尝试使用钩子强制 miltiaddr 加载
  • 我尝试过 ipfshttpclient (较新版本的 ipfsapi)

但我总是得到完全相同的错误。仅当使用 Pyinstaller 运行时才会失败。如果我使用 Python 运行我的脚本,它就会起作用。

我发现奇怪的是,我在脚本的一开始就打印一条消息,而 Pyinstaller 没有打印,似乎在我的脚本执行之前就出现了失败。就好像它在运行脚本之前加载模块,并且作为加载的一部分尝试连接到

/dns/localhost/tcp/5001/http
,但这总是会失败,我没有在本地主机上运行节点。

有什么想法吗?

谢谢

python pyinstaller ipfs-http-client
1个回答
0
投票

ModuleNotFound
错误意味着您没有正在使用的库。您是否尝试过其他部署工具,例如 cx_Freeze

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