Testing

pytest test_contracts.py 錯誤:ImportError: cannot import name state_transition

  • July 5, 2016

我正在努力按照此處此處的安裝說明在執行 Ubuntu 16.04 和 Python 2.7.11+ 的舊 ThinkPad T500 上設置 pyethereum 。

當我測試安裝時:

pyethereum/ethereum/tests$ pytest -m test_contracts.py

例如,我得到:

going into /home/pavel/Ethereum/pyethereum/ethereum/tests
============================  test_db.py  ============================

===========================  test_abi.py  ============================ 
unhandled exception occurred while testing test_abi Traceback (most
recent call last):   File
"/usr/lib/python2.7/dist-packages/logilab/common/pytest.py", line 447,
in testfile
   options=self.options, outstream=sys.stderr)   File "/usr/lib/python2.7/dist-packages/logilab/common/pytest.py", line 763,
in __init__
   testLoader=NonStrictTestLoader())   File "/usr/lib/python2.7/unittest/main.py", line 77, in __init__
   self.module = __import__(module)   File "test_abi.py", line 3, in <module>
   import ethereum.testutils as testutils   File "/home/pavel/.local/lib/python2.7/site-packages/ethereum-1.3.6-py2.7.egg/ethereum/testutils.py",
line 14, in <module>
   from ethereum import state_transition ImportError: cannot import name state_transition

至少有十個其他測試失敗,都帶有相同的消息:

ImportError: cannot import name state_transition

我渴望開始使用 pyethereum,並且非常感謝任何和所有的幫助。非常感謝你!

我的第一個問題是我執行的是舊版本的 Serpent (v 1.6.7),它仍然受到此處描述的錯誤的影響。我的第二個問題是由於此處的蛇教程中的拼寫錯誤:要測試安裝,命令是

python -m pytest test_contracts.py

(在 Serpent 教程中,“-m”在“pytest”之後,而不是在它之前)。

我通過以下方式更新了我的蛇

sudo pip install --upgrade ethereum-serpent

現在所有測試都成功完成。

引用自:https://ethereum.stackexchange.com/questions/6758