我有一个运行 Ubuntu 15.10 的托管服务器,因为我在开发机器上使用 Python 3.6,所以我安装了它(wget URL、configure、make、make install 等),这时我意识到 Ubuntu 已经安装了 Python 3.4.3,我的生活变得复杂了。
拥有多个版本的第一个症状是让 pip 正常运行,我遇到了很多麻烦,最终删除了 Ubuntu 版本的 Python 并重新安装。这似乎解决了问题(大部分),但现在 python3 链接到我的 python 3.6.0 安装,而 pip3 链接到 3.4.3 版本。
如果我使用 python3.4 启动 python,那么它会加载 3.4.3 并且我可以将它与我已下载的包一起使用(主要是 MySQLdb(3x Python 的分支))。
以上所有方法显然都不理想,但我认为既然它有效,我将继续测试我的设置。问题是当 www-data 用户运行 python3.4 时,它找不到包;我猜想它找错了地方。
理想情况下,我希望摆脱 Python3.6.0,只使用原生捆绑的 3.4.3。多次安装似乎给 pip(和我)带来了很多困惑。
答案1
所有自编译的包几乎总是放在 /usr/local/ 中,除非您更改安装路径或开发人员有其他非标准的东西(如 /opt/)作为默认值。
我假设有一个 /usr/local/bin/python3,您可以将其重命名为 /usr/local/bin/python3.6.0,这可能已经解决了所有问题。
你能做一个:
find /usr/ -iname "python3"
我建议尝试:
sudo mv /usr/local/bin/python3 /usr/local/bin/python3.6.0
有可能“bash”仍然“认为”python3 在 /usr/local/bin/ 中,而实际上它在 /usr/bin/python3 中。您可以注销并重新登录,然后重试。