Determining version of OpenSSL linked against python?

Terry Reedy tjreedy at
Wed Jan 25 15:04:26 EST 2012

On 1/25/2012 11:02 AM, Adam Mercer wrote:

> Is this possible at all?

If you are not willing to tell Debian Squeeze users to install 2.7, or 
that they cannot run your program, ask the bug reporter to tell you what 
version of OpenSSL the system comes with and code it into your program.

Or possibly, depending on what you do with the version info and what the 
differences are between versions, replace 'if version ...' constructs 
with 'try ... except...' constructs.

> On Mon, Jan 23, 2012 at 14:01, Adam Mercer<ramercer at>  wrote:
>> Hi
>> I'm trying to write a script that determines the version of OpenSSL
>> that python is linked against, using python-2.7 this is easy as I can
>> use:
>>     import ssl
>> but unfortunately I need to support python-2.6, from an older script I
>> used the following:
>>     import _ssl
>>     ssl_lib = _ssl.__file__
>> to get the path to the module and then I parsed the output of
>> ldd (on linux) to get the path to the OpenSSL library and then parsed
>> the version from the filename. In other words it's very messy.
>> I had a little success using this approach but I have recently
>> received a bug report that this doesn't seem to work on Debian
>> Squeeze. When I try to query the __file__ attribute of the _ssl module
>> I get the following error:
>>>>> import _ssl
>>>>> _ssl.__file__
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in<module>
>> AttributeError: 'module' object has no attribute '__file__'
>> Can anyone offer any suggestions as to what is going wrong with the
>> above code or offer an alternative way of determining the OpenSSl
>> version using python-2.6?

Terry Jan Reedy

More information about the Python-list mailing list