在linux上将Python 3.2升级到Python 3.4
默认情况下,我在Raspbian Linux上安装了Python 3.2,但我想要Python 3.4(在linux上将Python 3.2升级到Python 3.4,python,python-3.x,debian,apt,Python,Python 3.x,Debian,Apt,默认情况下,我在Raspbian Linux上安装了Python 3.2,但我想要Python 3.4(time.perf_counter,yield from,等等)。通过apt get安装python3.4没有问题,但是当我在shell中键入python3时,我仍然得到python3.2(因为,/usr/bin/python3仍然链接到它)。我应该更改符号链接吗,或者有更好的方法吗?您不能更改符号链接,因为可能存在依赖于python3作为python3.2或安装了特定库的Debian实用程序
time.perf_counter
,yield from
,等等)。通过apt get安装python3.4没有问题,但是当我在shell中键入python3时,我仍然得到python3.2(因为,/usr/bin/python3
仍然链接到它)。我应该更改符号链接吗,或者有更好的方法吗?您不能更改符号链接,因为可能存在依赖于python3作为python3.2或安装了特定库的Debian实用程序脚本。有许多命令行实用程序依赖于Debian上的特定版本和派生版本;例如,在我的Ubuntu上,在shebang上有/usr/bin
和python3
的脚本;在那里,python3
意味着python3的操作系统保持当前状态。如果手动安装python3,操作系统不会认为它可以作为python3
用于所有脚本。我的Ubuntu 14.10系统的一个例子:
[/usr/bin]% python3 bluez-list-devices
[/usr/bin]% python3.4 bluez-list-devices
[/usr/bin]% python3.3 bluez-list-devices
Traceback (most recent call last):
File "bluez-list-devices", line 3, in <module>
import dbus
File "/usr/lib/python3/dist-packages/dbus/__init__.py", line 82, in <module>
import dbus.types as types
File "/usr/lib/python3/dist-packages/dbus/types.py", line 6, in <module>
from _dbus_bindings import (
ImportError: No module named '_dbus_bindings'
[/usr/bin]% head -n 1 bluez-list-devices
#!/usr/bin/python3
[/usr/bin]%python3bluez列表设备
[/usr/bin]%python3.4 bluez列表设备
[/usr/bin]%python3.3bluez列表设备
回溯(最近一次呼叫最后一次):
文件“bluez列表设备”,第3行,在
导入DBU
文件“/usr/lib/python3/dist-packages/dbus/_-init___.py”,第82行,在
将dbus.types导入为类型
文件“/usr/lib/python3/dist packages/dbus/types.py”,第6行,在
从_dbus_绑定导入(
ImportError:没有名为“\u dbus\u bindings”的模块
[/usr/bin]%head-n 1 bluez列表设备
#!/usr/bin/python3
如果您自行决定更改符号链接,最坏情况下,您可以使系统不可旋转
只需使用
python3.4
作为命令,或使用虚拟环境。您不能更改符号链接,因为可能存在依赖于python3
作为python3.2或安装了特定库的Debian实用程序脚本。有许多命令行实用程序依赖于特定库Debian上的版本和派生版本;例如在我的Ubuntu上,/usr/bin
中有脚本,shebang上有python3
;在那里,python3
意味着操作系统保持当前的python3。如果手动安装Python 3,操作系统认为它不是可用作pytho的n3
适用于所有脚本。我的Ubuntu 14.10系统的一个示例:
[/usr/bin]% python3 bluez-list-devices
[/usr/bin]% python3.4 bluez-list-devices
[/usr/bin]% python3.3 bluez-list-devices
Traceback (most recent call last):
File "bluez-list-devices", line 3, in <module>
import dbus
File "/usr/lib/python3/dist-packages/dbus/__init__.py", line 82, in <module>
import dbus.types as types
File "/usr/lib/python3/dist-packages/dbus/types.py", line 6, in <module>
from _dbus_bindings import (
ImportError: No module named '_dbus_bindings'
[/usr/bin]% head -n 1 bluez-list-devices
#!/usr/bin/python3
[/usr/bin]%python3bluez列表设备
[/usr/bin]%python3.4 bluez列表设备
[/usr/bin]%python3.3bluez列表设备
回溯(最近一次呼叫最后一次):
文件“bluez列表设备”,第3行,在
导入DBU
文件“/usr/lib/python3/dist-packages/dbus/_-init___.py”,第82行,在
将dbus.types导入为类型
文件“/usr/lib/python3/dist packages/dbus/types.py”,第6行,在
从_dbus_绑定导入(
ImportError:没有名为“\u dbus\u bindings”的模块
[/usr/bin]%head-n 1 bluez列表设备
#!/usr/bin/python3
如果您自行决定更改符号链接,最坏情况下,您可以使系统不可旋转
只需使用
python3.4
作为命令,或者使用虚拟环境。我将回答我自己的问题,因为我已经找到了问题的解决方案。在将debian版本设置为jessie之后,我以前在我的系统上运行过apt get upgrade
。但这并没有取代python 3.2。取代它的是运行的apt get dist upgrade
;之后apt get autoremove
删除了python 3.2。我怀疑这可能是个问题,因为我没有安装任何外部库。我将回答我自己的问题,因为我已经找到了解决问题的方法。我之前在设置了m之后在我的系统上运行了apt get upgrade
y debian发布给jessie。但这并没有取代python 3.2。取而代之的是运行apt get dist upgrade
;之后apt get autoremove
删除了python 3.2。我怀疑这可能是个问题,因为我没有安装任何外部库。为什么它们依赖python3
作为python3.2?-python3.4是向后兼容的。它是向后兼容的,但有一些特定的库是为python3.2安装的,而不是为3.4安装的。Debian发行版也在内部使用Python。与python3.2链接的Python本机扩展不能与python3.4一起使用。为什么它们依赖于python3
作为python3.2?-Python 3.4是向后兼容的。它是向后兼容的,但是有一些特定的库是为Python 3.2安装的,而不是为3.4安装的。Debian发行版也在内部使用Python。与Python 3.2链接的Python本机扩展不能与Python 3.4一起使用。编辑你的.bashrc并导出路径编辑你的.bashrc并导出路径h、 然后,您的系统被正确升级为使用Python 3.4。这不是您安装外部库的问题,而是python3
symlink被处理并假定由Debian操作系统本身处理。是的,然后您的系统被正确升级为使用Python 3.4。这不是您安装外部库的问题也就是说,python3
symlink是由Debian操作系统本身处理的。