openpyxl module does not have attribute '__version__' when imported by pandas
<p>My traceback from running pandas takes me to: <br/>
<code>site-packages\pandas\io\excel.py line 58, in get_writer
AttributeError: 'module' object has no attribute '__version__'</code></p>

<p>I found this link to a git issue in the PyInstaller repo
<a href="https://github.com/pyinstaller/pyinstaller/issues/1890" rel="nofollow">https://github.com/pyinstaller/pyinstaller/issues/1890</a> and found my openpyxl version, manually added it into the get_writer method like so: </p>

<pre><code>def get_writer(engine_name):
    if engine_name == 'openpyxl':
        try:
            import openpyxl
            #remove when conda update available
            openpyxl.__version__ = '2.3.2'
            # with version-less openpyxl engine
            # make sure we make the intelligent choice for the user
            if LooseVersion(openpyxl.__version__) &lt; '2.0.0':
                return _writers['openpyxl1']
            elif LooseVersion(openpyxl.__version__) &lt; '2.2.0':
                return _writers['openpyxl20']
            else:
                return _writers['openpyxl22']
        except ImportError:
            # fall through to normal exception handling below
            pass

    try:
        return _writers[engine_name]
    except KeyError:
        raise ValueError("No Excel writer '%s'" % engine_name)
</code></pre>

<p>Still no dice. The line number given in the error traceback doesn't even change. I then updated the openpyxl version to 2.3.5, still receiving the error. The openpyxl <strong>init</strong> file has a <strong>version</strong> variable in it:</p>

<pre><code>try:
    here = os.path.abspath(os.path.dirname(__file__))
    src_file = os.path.join(here, ".constants.json")
    with open(src_file) as src:
        constants = json.load(src)
        __author__ = constants['__author__']
        __author_email__ = constants["__author_email__"]
        __license__ = constants["__license__"]
        __maintainer_email__ = constants["__maintainer_email__"]
        __url__ = constants["__url__"]
        __version__ = constants["__version__"]
except IOError:
    # packaged
    pass
</code></pre>

<p>Any known or potential fixes or workarounds?</p>

<p>Edits were not making an impact because the process was compiled into an exe that these modules were running through. Exported the sections I needed outside of my anaconda environment and now the process works without a hitch. </p>

python pandas openpyxl conda