2014-10-28 68 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