使用 Python3.8 安装新软件包时如何修复 "module 'platform' has no attribute 'linux_distribution'"?
How to fix "module 'platform' has no attribute 'linux_distribution'" when installing new packages with Python3.8?
我有 Python 版本的 2.7 和 3.5。我想安装更新版本的 Python,即 python 3.8。我正在使用 Ubuntu 16.04,由于依赖关系,我不能只卸载 Python 3.5。所以为了 运行 我的脚本,我使用 python3.8 app.py
。到目前为止没问题。但是当我想通过 pip 安装新包时:
python3.8 -m pip install pylint
它抛出一个错误:
AttributeError: module 'platform' has no attribute 'linux_distribution'
到目前为止,我尝试了:
sudo update-alternatives --config python3
并选择了 python3.8 和 运行 命令,从 python3 开始,但没有成功。
然后:
sudo ln -sf /usr/bin/python3.5 /usr/bin/python3
我也试过 运行 以 python3 开头的命令,但它也没有用。
如何修复它以便我可以将新软件包安装到我的新版本 Python?
检查您的轮子安装是否旧。我遇到了同样的错误并用
修复了它
python3.8 -m pip install --upgrade pip setuptools wheel
Pylint 似乎适用于 python3.8
Python 3.8 删除了一些东西。我通过使用 curl
安装 pip 解决了 pip(特别是 pip install)的问题
对我有用的是:
cd ~/Downloads
正在下载 get-pip.py
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
然后 运行 它与 python 3.8:
python3.8 get-pip.py
帮我解决了。
看起来至少在我的 Ubuntu 16.04 上,pip 为 /usr/lib/python3/dist-packages/pip
中的所有 Python 版本共享。
这就是我为让它再次工作所做的工作:
sudo apt remove python3-pip
sudo python3.8 -m easy_install pip
您可能需要使用 sudo python3.5 -m easy_install pip
再次安装 python 3.5 版本的 pip。
问题是 package.linux_distribution 从 Python 3.5(?) 开始被弃用。并为 Python 3.8.
完全删除
改用发行包。但是,此软件包仅适用于 Linux。
我 运行 在 Linux Mint 20 上安装 OpenCobolIDE 并将 Python 升级到最新级别后遇到了这个问题。已将代码修复提交给 OpenCobolIDE 作者进行审核和测试。通过此修复,我能够让 IDE 启动并 运行。
本质上,修复程序使用发行包(如果可用),否则使用旧平台包。例如:
如果可用,此代码将导入发行版:
import platform
using_distro = False
try:
import distro
using_distro = True
except ImportError:
pass
然后可以通过测试using_distro的值来判断是从package还是distro获取linuxdistro类型,例如:
if using_distro:
linux_distro = distro.like()
else:
linux_distro = platform.linux_distribution()[0]
就我而言,删除 python-pip-whl
包有帮助:
apt-get remove python-pip-whl
它也删除了 pip
和 virtualenv
,所以我不得不重新安装它们:
curl https://bootstrap.pypa.io/get-pip.py | python3
pip install virtualenv
我最近遇到了这个错误,事实证明我在标准库之前的路径中的一个文件夹中有一个名为 platform
的包,因此解释器导入了它。检查您实际导入的路径。
我有 Python 版本的 2.7 和 3.5。我想安装更新版本的 Python,即 python 3.8。我正在使用 Ubuntu 16.04,由于依赖关系,我不能只卸载 Python 3.5。所以为了 运行 我的脚本,我使用 python3.8 app.py
。到目前为止没问题。但是当我想通过 pip 安装新包时:
python3.8 -m pip install pylint
它抛出一个错误:
AttributeError: module 'platform' has no attribute 'linux_distribution'
到目前为止,我尝试了:
sudo update-alternatives --config python3
并选择了 python3.8 和 运行 命令,从 python3 开始,但没有成功。
然后:
sudo ln -sf /usr/bin/python3.5 /usr/bin/python3
我也试过 运行 以 python3 开头的命令,但它也没有用。
如何修复它以便我可以将新软件包安装到我的新版本 Python?
检查您的轮子安装是否旧。我遇到了同样的错误并用
修复了它python3.8 -m pip install --upgrade pip setuptools wheel
Pylint 似乎适用于 python3.8
Python 3.8 删除了一些东西。我通过使用 curl
安装 pip 解决了 pip(特别是 pip install)的问题
对我有用的是:
cd ~/Downloads
正在下载 get-pip.py
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
然后 运行 它与 python 3.8:
python3.8 get-pip.py
帮我解决了。
看起来至少在我的 Ubuntu 16.04 上,pip 为 /usr/lib/python3/dist-packages/pip
中的所有 Python 版本共享。
这就是我为让它再次工作所做的工作:
sudo apt remove python3-pip
sudo python3.8 -m easy_install pip
您可能需要使用 sudo python3.5 -m easy_install pip
再次安装 python 3.5 版本的 pip。
问题是 package.linux_distribution 从 Python 3.5(?) 开始被弃用。并为 Python 3.8.
完全删除改用发行包。但是,此软件包仅适用于 Linux。
我 运行 在 Linux Mint 20 上安装 OpenCobolIDE 并将 Python 升级到最新级别后遇到了这个问题。已将代码修复提交给 OpenCobolIDE 作者进行审核和测试。通过此修复,我能够让 IDE 启动并 运行。
本质上,修复程序使用发行包(如果可用),否则使用旧平台包。例如:
如果可用,此代码将导入发行版:
import platform
using_distro = False
try:
import distro
using_distro = True
except ImportError:
pass
然后可以通过测试using_distro的值来判断是从package还是distro获取linuxdistro类型,例如:
if using_distro:
linux_distro = distro.like()
else:
linux_distro = platform.linux_distribution()[0]
就我而言,删除 python-pip-whl
包有帮助:
apt-get remove python-pip-whl
它也删除了 pip
和 virtualenv
,所以我不得不重新安装它们:
curl https://bootstrap.pypa.io/get-pip.py | python3
pip install virtualenv
我最近遇到了这个错误,事实证明我在标准库之前的路径中的一个文件夹中有一个名为 platform
的包,因此解释器导入了它。检查您实际导入的路径。