Pyenv,Python安装失败:未安装OpenSSL开发标头

时间:2018-08-19 16:32:46

标签: python macos openssl pyenv

我一直无法使用Pyenv在macOS(10.13.6)上安装Python,并且就常见的构建问题用尽了所有建议。

pyenv-doctor报告:未安装OpenSSL开发标头。如各种相关GitHub问题中所述,重新安装OpenSSL无效,没有各种标志设置,例如(以各种组合):

export CFLAGS="-I$(brew --prefix openssl)/include"
export CPPFLAGS="-I$(brew --prefix openssl)/include"
export LDFLAGS="-L$(brew --prefix openssl)/lib"
export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig/"
export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"

(在命令行中也尝试了这些。)

(通过Homebrew尝试了OpenSSL 1.02p和1.1)

尝试

brew install readline xz

$ CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install 3.6.6

$ CFLAGS="-I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib" pyenv install 3.6.6

xcode-select --install
(or via downloadable command line tools installer for reinstallation)

没有运气。

brew link --force openssl
不允许

(错误消息说要使用标志)。

也尝试过:

$(brew --prefix)/opt/openssl/bin/openssl

并在此处尝试了OpenSSL / macOS建议:

https://solitum.net/openssl-os-x-el-capitan-and-brew/

$ PATH显示:

/usr/local/opt/openssl/bin:/Users/tc/google-cloud-sdk/bin:/Users/tc/Code/git/flutter/bin:/usr/local/sbin:/usr/local/heroku/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Users/tc/google-cloud-sdk/bin:/Users/tc/Code/git/flutter/bin:/usr/local/sbin:/usr/local/heroku/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Users/tc/google-cloud-sdk/bin:/Users/tc/.nvm/versions/node/v8.11.3/bin:/Users/tomclaburn/Code/git/flutter/bin:/usr/local/sbin:/usr/local/heroku/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/Postgres.app/Contents/Versions/latest/bin:/usr/local/mongodb/bin:/usr/local/opt/openssl/bin/openssl:/usr/local/mongodb/bin:/usr/local/mongodb/bin

和.bash_profile包含:

if [ -d "${PYENV_ROOT}" ]; then
   export PATH="${PYENV_ROOT}/bin:${PATH}"
   eval "$(pyenv init -)"
   #eval "$(pyenv virtualenv-init -)"
fi

我怀疑路径或链接丢失/不正确,但是我一直无法确定它可能是什么。任何建议都将受到欢迎。

Pyenv错误输出: 失败(使用python-build 20180424的OS X 10.13.6)

...

最近10条日志行:

checking size of long... 0
checking size of long long... 0
checking size of void *... 0
checking size of short... 0
checking size of float... 0
checking size of double... 0
checking size of fpos_t... 0
checking size of size_t... configure: error: in `/var/folders/jb/h01vxbqs6z93h_238q61d48h0000gn/T/python-build.20180819081705.3009/Python-3.6.6':
configure: error: cannot compute sizeof (size_t)

pyenv-doctor错误输出:

checking for gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking for rl_gnu_readline_p in -lreadline... yes
checking for readline/readline.h... no
checking for SSL_library_init in -lssl... yes
checking how to run the C preprocessor... clang -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... no
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... no
checking for string.h... no
checking for memory.h... no
checking for strings.h... no
checking for inttypes.h... no
checking for stdint.h... no
checking for unistd.h... yes
checking openssl/ssl.h usability... no
checking openssl/ssl.h presence... no
checking for openssl/ssl.h... no
configure: error: OpenSSL development header is not installed.

2 个答案:

答案 0 :(得分:4)

如果这是与我相同的问题,那是因为您的路径中不应该包含标题。运行brew doctor,您会发现它抱怨。要解决此问题,您可以执行以下操作:

mkdir /tmp/includes
brew doctor 2>&1 | grep "/usr/local/include" | awk '{$1=$1;print}' | xargs -I _ mv _ /tmp/includes

答案 1 :(得分:1)

应用Kit的答案后;我必须执行以下操作来克服以下事实:我也用自制软件安装了df<-data.frame(Date=c("2018-10-15","2018-10-16","2018-10-17", "2018-10-14","2018-10-15","2018-10-16","2018-10-18","2018-10-19", "2018-10-18","2018-10-21","2018-10-23","2018-10-24","2018-10-27","2018-10-28"),Group=c("a","a","a","b","b","b","b","b","c","c","c","c","c","c"),Gap_Days=c(1,1,1,1,1,2,1,1,3,2,1,3,1,1)) df_expected<-data.frame(Date=c("2018-10-15","2018-10-16","2018-10-17","2018-10-18","2018-10-19","2018-10-27","2018-10-28"),Group=c("a","a","a", "b","b","c","c"),Gap_Days=c(1,1,1,1,1,1,1))

openssl

那使我工作。 还发现此reference对于常见的构建问题很有用。