我的目标主机是SUSE 11,但无法访问互联网。 我能够从源代码安装Python 3.6.1但是我必须使用--with-ensurepip = no来禁用pip 否则安装失败,出现ModuleNotFoundError:没有名为'pyexpat'的模块 如果我尝试使用get-pip.py安装pip,我会得到同样的错误。 (那里没有惊喜)
我该如何解决这个问题?
答案 0 :(得分:2)
我也遇到同样的构建错误,但是使用了pyenv。我不确定我的解决方案是否会起作用,但希望它能起作用。
我花了整整4个小时的搜索时间,网上的每个人似乎都在说Mojave及更高版本缺少某些标头,然后指示您在此处手动下载这些标头:
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
但是我认为安装这些标头实际上是导致我出现问题的原因。
我不知道它是否真的是正确的解决方法,但是唯一适合我的方法是转到并下载/重新安装命令行工具。
重新安装命令行工具后,我未安装了据称丢失的标头。然后,我没有遇到因缺少pyexpat模块而导致构建失败的情况。
答案 1 :(得分:1)
以下步骤为我解决了这个问题:
sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
之后,我使用以下命令安装了python:
python-build 3.6.10 ~/.runtimes/Python36
(请注意,您可以根据需要更改版本)
此外,正如答案之一所述,运行
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
xcode-select --install
之后又为我打破了事情。
答案 2 :(得分:0)
我可以按照here所述的说明解决问题:
具体来说就是for循环:
for m in _struct binascii unicodedata _posixsubprocess math pyexpat _md5 _sha1 _sha256 _sha512 select _random _socket zlib fcntl; do
sed -i "s/^#\(${m}\)/\1/" Modules/Setup;
done
非常感谢沃伦和所有为此职位做出贡献的人。