2014-03-05 60 views
18

在導入機械化時我在python3中出現錯誤。我在導入機械化時在python3中出現錯誤

我剛剛安裝mechanize到我的virtualenv python3安裝。

$ which python3 
/Users/myname/.virtualenvs/python3/bin/python3 

$ pip freeze 
mechanize==0.2.5 

但是,當我嘗試在我的Python代碼導入機械化,我得到這個錯誤。

import mechanize 

--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
<ipython-input-1-6b82e40e2c8e> in <module>() 
----> 1 import mechanize 

/Users/myname/.virtualenvs/python3/lib/python3.3/site-packages/mechanize/__init__.py in <module>() 
    117 import sys 
    118 
--> 119 from _version import __version__ 
    120 
    121 # high-level stateful browser-style interface 

ImportError: No module named '_version' 

有誰知道如何解決這個問題?

我是新來的蟒蛇,我一直在研究如何在Python編程這些天。

感謝您的幫助提前!

更新

我已經安裝了mechanize for python3。 現在,我有另一個錯誤。

In [1]: import mechanize 
--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
<ipython-input-1-6b82e40e2c8e> in <module>() 
----> 1 import mechanize 

/Users/myname/.virtualenvs/python3/lib/python3.3/site-packages/mechanize-0.2.6.dev_20140305-py3.3.egg/mechanize/__init__.py in <module>() 
    120 
    121 # high-level stateful browser-style interface 
--> 122 from ._mechanize import \ 
    123  Browser, History, \ 
    124  BrowserStateError, LinkNotFoundError, FormNotFoundError 

/Users/myname/.virtualenvs/python3/lib/python3.3/site-packages/mechanize-0.2.6.dev_20140305-py3.3.egg/mechanize/_mechanize.py in <module>() 

/Users/myname/.virtualenvs/python3/lib/python3.3/site-packages/mechanize-0.2.6.dev_20140305-py3.3.egg/mechanize/_html.py in <module>() 

ImportError: cannot import name _sgmllib_copy 

我檢查了我在我的工作virtualenv中安裝了什麼。 我發現了一些警告。

$ pip freeze 
cssselect==0.9.1 
httplib2==0.8 
ipython==1.1.0 
lxml==3.2.4 
## FIXME: could not find svn URL in dependency_links for this package: 
mechanize==0.2.6.dev-20140305 
pyquery==1.2.8 
Warning: cannot find svn location for mechanize==0.2.6.dev-20140305 
+0

這是奇怪的,我試過了,現在安裝和它的工作... –

+1

你真的確認你安裝該庫的Python 3版本? Python 3改變了相對導入的語義,這打破了很多Python 2代碼。另外,你是否嘗試從交互式解釋器導入模塊? – rectangletangle

+0

@rectangletangle 我試圖在ipython中在終端中導入機械化。 – crzyonez777

回答

2

我想你可能已經安裝了Python 2.0版本機械化的,和新的Python 3引入語義打破舊的Python 2代碼。快速搜索,似乎Python 3對機械化的支持仍然有點弱。但是,我確實發現了一個Python 3 branch

您可以嘗試從鏈接到的源代碼手動安裝。一旦你下載了源代碼,改變你的目錄,以便你進入機械目錄。然後在終端中輸入$python3 setup.py install

+2

謝謝你的幫助!我剛安裝了你鏈接的那個。但是,我又遇到了一個錯誤。我要編輯我的帖子以添加信息。 – crzyonez777

3

模塊MechanicalSoup在同一個庫中合併了Mechanical和BeautifulSoup,並且可以在Python 2.6到3.4之後使用。

在命令提示符下安裝MechanicalSoup:

pip install MechanicalSoup 

在Python然後導入,

import mechanicalsoup # Don’t forget to import the new module