我正在尝试使用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,并且在多次尝试使其工作之后,我正在敲打这个墙,任何帮助将不胜感激...
答案 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'。 我这样解决了。