Python ImportError:无法导入名称__version__

时间:2014-08-04 14:44:04

标签: python python-2.7 oauth

我正在尝试使用requests和requests_oauthlib,现在我只是尝试使用他们在requests_oauthlib文档中使用的死的简单Twitter验证凭据来确认我已经掌握了基础知识。我做了一个“pip install requests requests_oauthlib”来获取模块。在终端窗口中,我可以“导入请求”没有问题但是当我尝试“import requests_oauthlib”时,我得到了这个:

>>> import requests_oauthlib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/requests_oauthlib/__init__.py", line 1, in
  <module>
    from .oauth1_auth import OAuth1
  File "/usr/lib/python2.7/site-packages/requests_oauthlib/oauth1_auth.py", line 10, in  
  <module>
    from requests.utils import to_native_string
  File "/usr/lib/python2.7/site-packages/requests/utils.py", line 23, in <module>
    from . import __version__
ImportError: cannot import name __version__

utils.py的第23行看起来确实如下:

from . import __version__

我在Fedora上使用Python 2.7.5,并且在多次尝试使其工作之后,我正在敲打这个墙,任何帮助将不胜感激...

2 个答案:

答案 0 :(得分:6)

检查根目录的__init__.py。 openpyxl从.constrants.json文件中读取这些信息。但是,PyInstaller无论如何都无法做到正确。我想你自己写一个__version__.py文件,并在__init__.py中替换它们。

另一种更简单的方法是像这样更改__init__.py

import json
import os


# Modified to make it work in PyInstaller
#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

__author__ = 'See AUTHORS'
__author_email__ = 'eric.gazoni@gmail.com'
__license__ = 'MIT/Expat'
__maintainer_email__ = 'openpyxl-users@googlegroups.com'
__url__ = 'http://openpyxl.readthedocs.org'
__version__ = '2.4.0-a1'

"""Imports for the openpyxl package."""
from openpyxl.compat.numbers import NUMPY, PANDAS
from openpyxl.xml import LXML

from openpyxl.workbook import Workbook
from openpyxl.reader.excel import load_workbook

print('You are using embedded openpyxl... 2.4.0-a1 ...')

答案 1 :(得分:3)

我在我的项目中使用了openpyxl,当我通过py2exe创建exe时,编译没问题但是当我运行编译的exe时遇到了同样的问题。

ImportError:无法导入名称__version __

尝试修改openpyxl paceage文件夹根目录中的 init .py,不要从constants.json文件中读取版本,只需写入 __ version ___ ='2.4.1'。 我这样解决了。