當前聚焦:問題解決系列:NameError: name 'platform_system' is not defined

2022-12-19 17:02:03 來源:51CTO博客

問題場景

使用??pip???安裝依賴的時候,更新之后,更新的依賴不能用。比如我將機器的??ansible???版本指定安裝??2.7.11???版本,安裝成功之后,使用命令??ansible --version??的時候,提示報錯,報錯具體提示如下:


(相關資料圖)

ERROR! Unexpected Exception, this is probably a bug: name "platform_system" is not definedthe full traceback was:Traceback (most recent call last):  File "/bin/ansible", line 97, in     mycli = getattr(__import__("ansible.cli.%s" % sub, fromlist=[myclass]), myclass)  File "/usr/lib/python2.7/site-packages/ansible/cli/__init__.py", line 38, in     from ansible.inventory.manager import InventoryManager  File "/usr/lib/python2.7/site-packages/ansible/inventory/manager.py", line 38, in     from ansible.plugins.loader import inventory_loader  File "/usr/lib/python2.7/site-packages/ansible/plugins/loader.py", line 22, in     from ansible.parsing.utils.yaml import from_yaml  File "/usr/lib/python2.7/site-packages/ansible/parsing/utils/yaml.py", line 17, in     from ansible.parsing.yaml.loader import AnsibleLoader  File "/usr/lib/python2.7/site-packages/ansible/parsing/yaml/loader.py", line 30, in     from ansible.parsing.yaml.constructor import AnsibleConstructor  File "/usr/lib/python2.7/site-packages/ansible/parsing/yaml/constructor.py", line 29, in     from ansible.parsing.vault import VaultLib  File "/usr/lib/python2.7/site-packages/ansible/parsing/vault/__init__.py", line 42, in     from cryptography.hazmat.backends import default_backend  File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/__init__.py", line 7, in     import pkg_resources  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 3007, in     working_set.require(__requires__)  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 728, in require    needed = self.resolve(parse_requirements(requirements))  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 631, in resolve    requirements.extend(dist.requires(req.extras)[::-1])  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2489, in requires    dm = self._dep_map  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2700, in _dep_map    self.__dep_map = self._compute_dependencies()  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2733, in _compute_dependencies    common = frozenset(reqs_for_extra(None))  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2730, in reqs_for_extra    if req.marker_fn(override={"extra":extra}):  File "/usr/lib/python2.7/site-packages/_markerlib/markers.py", line 113, in marker_fn    return eval(compiled_marker, environment)  File "", line 1, in NameError: name "platform_system" is not defined

問題環境

軟件

版本

python

2.7

pip

8.1.2

setuptools

0.9.8

問題原因

指定軟件版本進行更新的時候,軟件本身依賴的??setuptools???版本不兼容當前機器的版本。所以更新??setuptools???依賴即可。不過為了保險起見,最好連??pip??都一起更新。

解決方案

使用??root??用戶執行以下命令

pip install --upgrade pippip install --upgrade setuptools

結果

使用命令??ansible --version??命令之后,可以正常顯示,如下:

ansible 2.7.11  config file = /home/tidb/tidb-ansible/ansible.cfg  configured module search path = [u"/home/tidb/.ansible/plugins/modules", u"/usr/share/ansible/plugins/modules"]  ansible python module location = /usr/lib/python2.7/site-packages/ansible  executable location = /bin/ansible  python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

總結

版本依賴沖突是一個比較常見的問題,主要是分析背后的依賴問題,根據具體情況即可解決問題。

隨緣求贊

如果我的文章對大家產生了幫忙,可以在文章底部點個贊或者收藏;如果有好的討論,可以留言;如果想繼續查看我以后的文章,可以左上角點擊關注

也可以掃描以下二維碼,關注我的公眾號:楓夜之求索閣,查看我最新的分享!

標簽: 問題解決 解決問題 解決方案

上一篇:初識C語言
下一篇:焦點報道:Spring Shell Reference Documentation(參考文檔)