2014-10-28 33 views
0

如何爲Python 3安裝ZODB?我在Fedora上安裝的python-ZODB3,但我只能在Python 2使用ZODB:Fedora:在Python 3中沒有名爲'ZODB'的模塊

$ python 
Python 2.7.5 (default, Sep 25 2014, 13:57:38) 
[GCC 4.8.3 20140911 (Red Hat 4.8.3-7)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import ZODB 
>>> quit() 
$ python3 
Python 3.3.2 (default, Jun 30 2014, 17:20:03) 
[GCC 4.8.3 20140624 (Red Hat 4.8.3-1)] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import ZODB 
Traceback (most recent call last): 
    File "/usr/lib64/python3.3/code.py", line 90, in runcode 
    exec(code, self.locals) 
    File "<console>", line 1, in <module> 
ImportError: No module named 'ZODB' 

我缺少哪個包?

回答

1

通常,Python 3.x的Python包foo的Fedora名稱是python3-foo,而不是python-foo3

特別是,python-ZODB3是ZODB3的Python 2.x軟件包。 (ZODB3ZODB的舊版本3,仍舊提供向後兼容性。)ZODB的舊3.x和新4.x版本都適用於Python 2.x和3.x;這意味着至少有(至少可能)包名爲python-ZODB(Python 2.x的ZODB 4.x),python3-ZODB(4.x for 3.x),python-ZODB3(3.x for 2.x)和python3-ZODB3(3 .x for 3.x)。這是你想要的第二個,而不是第三個。

我不能保證你的Fedora版本和回購版有一個python3-ZODB RPM,但是從快速搜索中我發現了this,所以至少有一些基於Fedora的系統有一個。

如果沒有Fedora RPM,你可以通過pip安裝它,比如pip3 install ZODB

+0

感謝您的詳細解答,我接受它是因爲它引導我找到解決方案,但我沒有在我的存儲庫(我使用Fedora 20)中找到名爲'python3-ZODB *'的軟件包。我終於發現正確的語句是'pip-3.3 install ZODB'。 – czayas 2014-10-29 15:57:35

+0

爲了記錄,在Korora(Fedora的一個版本)中,我必須首先運行'sudo yum install python3-devel',然後運行'sudo easy_install-3.3 ZODB'。 – czayas 2014-11-10 03:13:55

+0

@czayas:你真的不應該在一般情況下使用'easy_install'。 (在某些情況下,有很好的理由,但是如果你不知道你有這樣一個原因,你就沒有這個理由。)我確信有一個你可以安裝的python3-pip包;如果沒有,你可以手動安裝它。 – abarnert 2014-11-10 19:32:33

相關問題