所以我尝试用pip将discord的API下载到我的venv中,但是它无法构建PyNaCl。它说错误是PATH中缺少' make‘实用程序,但我只是将它添加到我的环境变量中,并尝试在cmd上运行它,以确保它已正确安装。你知道是什么导致了这个问题吗?
我运行的是Windows10、Python3.9.1和pip 20.3.3 Here is the error message:
注意:我可以在没有语音支持的情况下完美地安装discord模块,但是,我想要使用它的语音功能,我不明白为什么它无法安装。
发布于 2021-08-07 16:31:58
路径中缺少
'make‘实用工具
此错误的原因
此错误是由setup.py of PyNacl源代码中的错误引起的。
但是,即使您修复了它,您也会遇到更多问题,因为源代码并不打算在windows上构建。
如果您只想安装PyNacl,请参阅下一节。
如果您想了解错误的详细信息,请参阅最后一节。
安装PyNacl
在2020年9月14日之后,pynacl预置了abi3轮子,因此pip install pynacl会自动下载并安装它。您不需要自己构建pynacl。
PyNaCl-1.4.0-cp35-abi3-win_amd64.whl和pip install PyNaCl-1.4.0-cp35-abi3-win_amd64.whl (在下载目录中)。pip install -U pip升级pip,然后重试。pip debug -v检查兼容的标记:pip install应该会成功。pynacl (或安装win_amd64 python)。pynacl将libsodium列为依赖项。幸运的是,您不需要构建libsodium (它需要make,这会导致您遇到的错误)。
您可以从https://download.libsodium.org/libsodium/releases/.下载预构建的
mingw”)复制到您的mingw安装目录(也包含"bin“、"lib”、“”)
最后,使用
SODIUM_INSTALL=system pip install pynacl.然后,pip将使用PEP517通过预置的libsodium为您构建和安装pynacl。或者,您可以自己构建(从pypi下载源代码,并在源代码目录中):
SODIUM_INSTALL=system python setup.py bdist_wheel使用cmd或powershell时,您不能在bash样式中设置环境变量。您可以改用以下命令:
$env:SODIUM_INSTALL="system";pip install pynaclbug的详细信息
错误出现在这里:
if not which("make"):
raise Exception("ERROR: The 'make' utility is missing from PATH")函数which是用一个BUG实现的
def which(name, flags=os.X_OK): # Taken from twisted
result = []
exts = filter(None, os.environ.get('PATHEXT', '').split(os.pathsep))
path = os.environ.get('PATH', None)
if path is None:
return []
for p in os.environ.get('PATH', '').split(os.pathsep):
p = os.path.join(p, name)
if os.access(p, flags):
result.append(p)
for e in exts:
pext = p + e
if os.access(pext, flags):
result.append(pext)
return result在Python3中,filter返回迭代器,而不是list (python2的filter返回list)。因此,"exts“将在第一次迭代中”耗尽“。您可以用list(filter(...))替换filter(...)来修复它。
https://stackoverflow.com/questions/65517524
复制相似问题