我已经安装了 Python 2.7 的 Bottle,但是如何从 Python 3.2 访问 ir?



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

sudo pip install bottle

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

但是我的系统上也安装了Python 3.2,我想从Python 3.2访问瓶子。 Python 3.2 似乎没有识别出安装了瓶子。

我做错了什么?

你必须

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

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

不幸的是,尽管该命令有效,但即使通过 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 安装时都遇到了错误。不过,最新的开发版本,只是一个从主页链接的文件,似乎可以工作。

你没有做错任何事。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请查看名为 pkg_resources 的无模块

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

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

最新更新