0

我已经在我的 Ubuntu Linux 服务器上安装了瓶子,使用

sudo pip install bottle

它被安装到:/usr/local/lib/python2.7/dist-packages

但我的系统上也安装了 Python 3.2,我想从 Python 3.2 访问瓶子。Python 3.2 似乎无法识别该瓶已安装。

我究竟做错了什么?

4

4 回答 4

3

您必须为 Python 3.2 单独安装它(例如sudo pip-3.2 install bottle)。

它目前在 中python2.7/dist-packages,这意味着只有 2.7 会加载它。您可以尝试将其添加到您的 PYTHONPATH 或类似文件中,但这在 Python 2 和 3 之间很少起作用,因为源文件不太兼容。(任何 C 扩展也肯定不会工作,尽管瓶子没有这些。)

不幸的是,尽管该命令有效,但即使通过 pip-3.2 安装,pypi 中的 bottle 版本似乎也不兼容 Python 3:

In [1]: import bottle
  File "/Library/Frameworks/Python.framework/Versions/3.2/bin/bottle.py", line 373
    except re.error, e:
                   ^
SyntaxError: invalid syntax

主页声称它适用于 3.x,但我在使用 pip 和 easy_install 安装时遇到了错误。不过,最新的开发版本(只是从主页链接的单个文件)似乎可以工作。

于 2012-05-27T05:19:40.513 回答
0

你没有做错任何事。Pip 默认使用 /usr/bin/python 并且只安装在那里。除非您想设置 virtualenv-s,否则最好将当前 pip 复制到 pip3.2 并对其进行编辑以调用 python 3.2:

sudo -s -H
p=$(which pip)
cat $p | sed "1s|/usr/bin/python|$(which python3.2)|" > $p"3.2"
chmod 755 $p"3.2"
exit

你现在有一个pip3.2可以安装瓶子的东西,所以 python3.2 可以使用它。如果您在运行 pip3.2 时遇到关于找不到 pkg_resources 的错误,请查看No module named pkg_resources

于 2012-05-27T05:31:57.273 回答
0

我会自己回答这个问题。原来 pip 的最新版本不包括 pip-3.2。您需要下载开发版本并使用它,其中包括 pip-3.2。

于 2012-06-02T07:20:10.203 回答
0

只需从异地手动下载即可。它只是一个文件。将其放入 lib/site-packages 文件夹并赋予文件适当的权限。

于 2012-06-02T08:36:31.747 回答