我已经在我的 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 扩展也肯定不会工作,尽管瓶子没有这些。)
不幸的是,尽管该命令有效,但即使通过 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 的错误,请查看No module named pkg_resources
我会自己回答这个问题。原来 pip 的最新版本不包括 pip-3.2。您需要下载开发版本并使用它,其中包括 pip-3.2。
只需从异地手动下载即可。它只是一个文件。将其放入 lib/site-packages 文件夹并赋予文件适当的权限。