web-dev-qa-db-ja.com

Python ImportError:名前をインポートできません__version__

私はrequestsとrequests_oauthlibを使用しようとしていますが、今は、requests_oauthlibのドキュメントで使用されている単純なTwitter検証資格情報の例を試し、基本が機能していることを確認しています。モジュールを取得するために「pipinstallrequestsrequests_oauthlib」を実行しました。ターミナルウィンドウでは「リクエストのインポート」は問題ありませんが、「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を使用しており、それを機能させるために何度も試みた後、現在この壁に頭をぶつけています。助けていただければ幸いです...

11
hyssop

ルートディレクトリの__init__.pyを確認してください。 openpyxlは、.constrants.jsonファイルからこれらの情報を読み取ります。しかし、PyInstallerはどういうわけかそれを正しくすることができません。 __version__.pyファイルを自分で作成し、__init__.pyに置き換えます。

もう1つの簡単な方法は、次のように__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__ = '[email protected]'
__license__ = 'MIT/Expat'
__maintainer_email__ = '[email protected]'
__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 ...')
6
Dipterix

プロジェクトでopenpyxlを使用しました。py2exeでexeを作成すると、コンパイルは問題ありませんが、コンパイルされたexeを実行すると、同じ問題が発生しました。

ImportError:名前をインポートできません__version __

Openpyxlペースフォルダのルートにあるinit。pyを変更してみてください。constants.jsonファイルからversionを読み取らず、__ version__ = '2.4.1'。私はこの方法で解決しました。

3
sunday