Chinaunix

标题: 在Windows Server 2008安装pyOpenSSL遇到的问题 [打印本页]

作者: 夏寥寥    时间: 2016-08-02 15:11
标题: 在Windows Server 2008安装pyOpenSSL遇到的问题
Hi,在在Windows Server 2008安装pyOpenSSL遇到一些问题,还请大家帮忙看一下!

Visual Studio 2012安装在E盘;
OpenSSL安装在C盘;


1. 首先下载了格式为.tar.gz的pyOpenSSL文件

下载地址:https://pypi.python.org/pypi/pyOpenSSL

2. 然后在命令行使用python setup.py install进行安装;之后陆续出现了一些错误;大部分都是缺少依赖文件;

3. 之后在安装cryptography.tar.gz提示如下错误:
[attach]692577[/attach]

4. 根据错误提示,说是系统变量没设置好;于是进入到Visual Studio 2012的安装目录下,找到vcvars64.bat并执行来设置环境变量;

但是在执行后,系统没有任何提示,再次执行第3步的操作时,发现还是报之前的错误;

[attach]692577[/attach]

5. 之后又打开vcvars64.bat文件查看,也没看懂什么意思;


@call :GetVSCommonToolsDir
@if "%VS110COMNTOOLS%"=="" goto error_no_VS110COMNTOOLSDIR

@call "%VS110COMNTOOLS%VCVarsQueryRegistry.bat" No32bit 64bit

@if "%VSINSTALLDIR%"=="" goto error_no_VSINSTALLDIR
@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR
@if "%FrameworkDir64%"=="" goto error_no_FrameworkDIR64
@if "%FrameworkVersion64%"=="" goto error_no_FrameworkVer64
@if "%Framework35Version%"=="" goto error_no_Framework35Version

@set FrameworkDir=%FrameworkDir64%
@set FrameworkVersion=%FrameworkVersion64%

@if not "%WindowsSdkDir_old%" == "" (
        @set "PATH=%WindowsSdkDir_old%bin\NETFX 4.0 Tools\x64;%WindowsSdkDir_35%x64;%WindowsSdkDir_old%bin\NETFX 4.0 Tools;%WindowsSdkDir_35%;%PATH%"
)

@if not "%WindowsSdkDir%" == "" (
        @set "PATH=%WindowsSdkDir%bin\x64;%WindowsSdkDir%bin\x86;%PATH%"
        @set "INCLUDE=%WindowsSdkDir%include\shared;%WindowsSdkDir%include\um;%WindowsSdkDir%include\winrt;%INCLUDE%"
        @set "LIB=%WindowsSdkDir%lib\win8\um\x64;%LIB%"
        @set "LIBPATH=%WindowsSdkDir%References\CommonConfiguration\Neutral;%ExtensionSDKDir%\Microsoft.VCLibs\11.0\References\CommonConfiguration\neutral;%LIBPATH%"
)

@rem PATH
@rem ----
@if exist "%VSINSTALLDIR%Team Tools\Performance Tools\x64" (
        @set "PATH=%VSINSTALLDIR%Team Tools\Performance Tools\x64;%VSINSTALLDIR%Team Tools\Performance Tools;%PATH%"
)
@if exist "%ProgramFiles%\HTML Help Workshop" set PATH=%ProgramFiles%\HTML Help Workshop;%PATH%
@if exist "%ProgramFiles(x86)%\HTML Help Workshop" set PATH=%ProgramFiles(x86)%\HTML Help Workshop;%PATH%
@set PATH=%VSINSTALLDIR%Common7\Tools;%PATH%
@set PATH=%VSINSTALLDIR%Common7\IDE;%PATH%
@set PATH=%VCINSTALLDIR%VCPackages;%PATH%
@set PATH=%FrameworkDir%\%Framework35Version%;%PATH%
@set PATH=%FrameworkDir%\%FrameworkVersion%;%PATH%
@set PATH=%VCINSTALLDIR%BIN\amd64;%PATH%

@if exist "%VSINSTALLDIR%Common7\IDE\CommonExtensions\Microsoft\TestWindow" (
        @set "PATH=%VSINSTALLDIR%Common7\IDE\CommonExtensions\Microsoft\TestWindow;%PATH%"
)

@rem INCLUDE
@rem -------
@if exist "%VCINSTALLDIR%ATLMFC\INCLUDE" set INCLUDE=%VCINSTALLDIR%ATLMFC\INCLUDE;%INCLUDE%
@set INCLUDE=%VCINSTALLDIR%INCLUDE;%INCLUDE%

@rem LIB
@rem ---
@if exist "%VCINSTALLDIR%ATLMFC\LIB\amd64" set LIB=%VCINSTALLDIR%ATLMFC\LIB\amd64;%LIB%
@set LIB=%VCINSTALLDIR%LIB\amd64;%LIB%

@rem LIBPATH
@rem -------
@if exist "%VCINSTALLDIR%ATLMFC\LIB\amd64" set LIBPATH=%VCINSTALLDIR%ATLMFC\LIB\amd64;%LIBPATH%
@set LIBPATH=%VCINSTALLDIR%LIB\amd64;%LIBPATH%
@set LIBPATH=%FrameworkDir%\%Framework35Version%;%LIBPATH%
@set LIBPATH=%FrameworkDir%\%FrameworkVersion%;%LIBPATH%

@set Platform=X64
@set CommandPromptType=Native

@goto end

@REM -----------------------------------------------------------------------
:GetVSCommonToolsDir
@set VS110COMNTOOLS=
@call :GetVSCommonToolsDirHelper32 HKLM > nul 2>&1
@if errorlevel 1 call :GetVSCommonToolsDirHelper32 HKCU > nul 2>&1
@if errorlevel 1 call :GetVSCommonToolsDirHelper64  HKLM > nul 2>&1
@if errorlevel 1 call :GetVSCommonToolsDirHelper64  HKCU > nul 2>&1
@exit /B 0

:GetVSCommonToolsDirHelper32
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "11.0"') DO (
        @if "%%i"=="11.0" (
                @SET "VS110COMNTOOLS=%%k"
        )
)
@if "%VS110COMNTOOLS%"=="" exit /B 1
@SET "VS110COMNTOOLS=%VS110COMNTOOLS%Common7\Tools\"
@exit /B 0

:GetVSCommonToolsDirHelper64
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7" /v "11.0"') DO (
        @if "%%i"=="11.0" (
                @SET "VS110COMNTOOLS=%%k"
        )
)
@if "%VS110COMNTOOLS%"=="" exit /B 1
@SET "VS110COMNTOOLS=%VS110COMNTOOLS%Common7\Tools\"
@exit /B 0

@REM -----------------------------------------------------------------------
:error_no_VS110COMNTOOLSDIR
@echo ERROR: Cannot determine the location of the VS Common Tools folder.
@goto end

:error_no_VSINSTALLDIR
@echo ERROR: Cannot determine the location of the VS installation.
@goto end

:error_no_VCINSTALLDIR
@echo ERROR: Cannot determine the location of the VC installation.
@goto end

:error_no_FrameworkDIR64
@echo ERROR: Cannot determine the location of the .NET Framework 64bit installation.
@goto end

:error_no_FrameworkVer64
@echo ERROR: Cannot determine the version of the .NET Framework 64bit installation.
@goto end

:error_no_Framework35Version
@echo ERROR: Cannot determine the .NET Framework 3.5 version.
@goto end

:end



作者: 夏寥寥    时间: 2016-08-02 16:59
错误:build\temp.win-amd64-2.7\Release\_openssl.c(415) fatal error C1083:Cannot open include file (openssl\e_os2.h) no such a file or directory;
解决方法:该错误是由于系统找不到文件openssl\e_os2.h,在系统中设置变量即可;

变量名:include
变量值:C:\OpenSSL1.0\setup\OpenSSL-Win32\include (根据你系统中openssl安装的位置进行调整)

然后重启机器即可;
作者: 夏寥寥    时间: 2016-08-03 11:44
在安装cryptography时报如下错误:
_openssl.obj:error LNK2019:unresolved external symbol sk_dup referenced in function _cffi_d_sk_X509_NAME_ENTRY_dup

build\lib.win-amd64-2.7\cryptography\hazmat\bindings\_openssl.pyd :fatal error LNK1120:990 unsolved externals

error:command 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\common\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\link.exe' failed with exit status 1120

作者: 夏寥寥    时间: 2016-08-03 18:35
回复 3# 夏寥寥

该报错的原因是由于:Python(64-bit)和OpenSSL(32-bit)安装的位数不一致, 把OpenSSL替换成64-bit的即可解决该问题;

   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2