はじめに
移植やってます
hasattr (Python)
try:
    import pandas as pd
except ImportError:
    pd = None
else:
    if hasattr(pd, '_version'):
        pv = pd._version.get_versions()['version']
    else:
        pv = pd.version.version
hasattrでメソッドがあるかどうかを確認。
Pandasの古いバージョンに対応していると思われ。
methods (Ruby)
begin
  require 'pandas'
  pd = Pandas    
rescue => exception
  pd = nil
else
  if pd.methods.include?(:__version__)
    pv = pd.__version__
  else
    raise "Pandas#__version__ NoMethodError"
  end
end
Class#methodsでメソッド一覧が取れます。
まあ、こちらはRubyやPandas等の環境を指定できますので、それほど問題にはならないかも。
メモ
- Python の hasattr を学習した
 - 道のりは遠そう