【问题标题】:PIP will only install packages to Python 2PIP 只会将包安装到 Python 2
【发布时间】:2021-09-30 21:53:26
【问题描述】:

我有一台运行 Ubuntu 16.04 的计算机,我正在尝试使用 Python。我需要安装 pyserial 包。跑步 pip install pyserial 没有问题,但是当我尝试在 python 3 (3.9.6) 中导入包时,我收到一个错误,即没有名为 serial 的模块。当我尝试运行python3 -m pip install pyserial 时,我收到一条错误消息/usr/local/bin/python3: No module named pip。我已经运行 sudo apt-get install -y python3-pip 没有错误,但这并不能解决 pip 的问题。与运行 pip3 install pyserial 而不仅仅是 pip 相同。我最近用 python 3.9.6 替换了 python 3.5.2,当我这样做 python3 -v 时,我收到一条很长的错误消息(发布在下面),所以我认为这与它有关,但我只是不确定.我不知道安装是否搞砸了,是否有一些事情需要清理,或者是否还有其他事情发生。

import _frozen_importlib # frozen
import _imp # builtin
import '_thread' # <class '_frozen_importlib.BuiltinImporter'>
import '_warnings' # <class '_frozen_importlib.BuiltinImporter'>
import '_weakref' # <class '_frozen_importlib.BuiltinImporter'>
import '_io' # <class '_frozen_importlib.BuiltinImporter'>
import 'marshal' # <class '_frozen_importlib.BuiltinImporter'>
import 'posix' # <class '_frozen_importlib.BuiltinImporter'>
import '_frozen_importlib_external' # <class '_frozen_importlib.FrozenImporter'>
# installing zipimport hook
import 'time' # <class '_frozen_importlib.BuiltinImporter'>
import 'zipimport' # <class '_frozen_importlib.FrozenImporter'>
# installed zipimport hook
# /usr/local/lib/python3.9/encodings/__pycache__/__init__.cpython-39.pyc matches /usr/local/lib/python3.9/encodings/__init__.py
# code object from '/usr/local/lib/python3.9/encodings/__pycache__/__init__.cpython-39.pyc'
# /usr/local/lib/python3.9/__pycache__/codecs.cpython-39.pyc matches /usr/local/lib/python3.9/codecs.py
# code object from '/usr/local/lib/python3.9/__pycache__/codecs.cpython-39.pyc'
import '_codecs' # <class '_frozen_importlib.BuiltinImporter'>
import 'codecs' # <_frozen_importlib_external.SourceFileLoader object at 0x7f41506b8700>
# /usr/local/lib/python3.9/encodings/__pycache__/aliases.cpython-39.pyc matches /usr/local/lib/python3.9/encodings/aliases.py
# code object from '/usr/local/lib/python3.9/encodings/__pycache__/aliases.cpython-39.pyc'
import 'encodings.aliases' # <_frozen_importlib_external.SourceFileLoader object at 0x7f4150653ca0>
import 'encodings' # <_frozen_importlib_external.SourceFileLoader object at 0x7f41506b8460>
# /usr/local/lib/python3.9/encodings/__pycache__/utf_8.cpython-39.pyc matches /usr/local/lib/python3.9/encodings/utf_8.py
# code object from '/usr/local/lib/python3.9/encodings/__pycache__/utf_8.cpython-39.pyc'
import 'encodings.utf_8' # <_frozen_importlib_external.SourceFileLoader object at 0x7f41506b8940>
import '_signal' # <class '_frozen_importlib.BuiltinImporter'>
# /usr/local/lib/python3.9/encodings/__pycache__/latin_1.cpython-39.pyc matches /usr/local/lib/python3.9/encodings/latin_1.py
# code object from '/usr/local/lib/python3.9/encodings/__pycache__/latin_1.cpython-39.pyc'
import 'encodings.latin_1' # <_frozen_importlib_external.SourceFileLoader object at 0x7f4150653d90>
# /usr/local/lib/python3.9/__pycache__/io.cpython-39.pyc matches /usr/local/lib/python3.9/io.py
# code object from '/usr/local/lib/python3.9/__pycache__/io.cpython-39.pyc'
# /usr/local/lib/python3.9/__pycache__/abc.cpython-39.pyc matches /usr/local/lib/python3.9/abc.py
# code object from '/usr/local/lib/python3.9/__pycache__/abc.cpython-39.pyc'
import '_abc' # <class '_frozen_importlib.BuiltinImporter'>
import 'abc' # <_frozen_importlib_external.SourceFileLoader object at 0x7f415066b280>
import 'io' # <_frozen_importlib_external.SourceFileLoader object at 0x7f4150653f70>
# /usr/local/lib/python3.9/__pycache__/site.cpython-39.pyc matches /usr/local/lib/python3.9/site.py
# code object from '/usr/local/lib/python3.9/__pycache__/site.cpython-39.pyc'
# /usr/local/lib/python3.9/__pycache__/os.cpython-39.pyc matches /usr/local/lib/python3.9/os.py
# code object from '/usr/local/lib/python3.9/__pycache__/os.cpython-39.pyc'
# /usr/local/lib/python3.9/__pycache__/stat.cpython-39.pyc matches /usr/local/lib/python3.9/stat.py
# code object from '/usr/local/lib/python3.9/__pycache__/stat.cpython-39.pyc'
import '_stat' # <class '_frozen_importlib.BuiltinImporter'>
import 'stat' # <_frozen_importlib_external.SourceFileLoader object at 0x7f4150608af0>
# /usr/local/lib/python3.9/__pycache__/_collections_abc.cpython-39.pyc matches /usr/local/lib/python3.9/_collections_abc.py
# code object from '/usr/local/lib/python3.9/__pycache__/_collections_abc.cpython-39.pyc'
import '_collections_abc' # <_frozen_importlib_external.SourceFileLoader object at 0x7f4150608b80>
# /usr/local/lib/python3.9/__pycache__/posixpath.cpython-39.pyc matches /usr/local/lib/python3.9/posixpath.py
# code object from '/usr/local/lib/python3.9/__pycache__/posixpath.cpython-39.pyc'
# /usr/local/lib/python3.9/__pycache__/genericpath.cpython-39.pyc matches /usr/local/lib/python3.9/genericpath.py
# code object from '/usr/local/lib/python3.9/__pycache__/genericpath.cpython-39.pyc'
import 'genericpath' # <_frozen_importlib_external.SourceFileLoader object at 0x7f41506401f0>
import 'posixpath' # <_frozen_importlib_external.SourceFileLoader object at 0x7f4150608ac0>
import 'os' # <_frozen_importlib_external.SourceFileLoader object at 0x7f4150680220>
# /usr/local/lib/python3.9/__pycache__/_sitebuiltins.cpython-39.pyc matches /usr/local/lib/python3.9/_sitebuiltins.py
# code object from '/usr/local/lib/python3.9/__pycache__/_sitebuiltins.cpython-39.pyc'
import '_sitebuiltins' # <_frozen_importlib_external.SourceFileLoader object at 0x7f4150680af0>
import 'site' # <_frozen_importlib_external.SourceFileLoader object at 0x7f415066ba60>
Python 3.9.6 (default, Jul 23 2021, 14:48:54) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
import 'atexit' # <class '_frozen_importlib.BuiltinImporter'>

【问题讨论】:

  • 你试过了吗pip3 install pyserial
  • 大约 3 次,是的。我收到 pyserial 模块不存在的错误

标签: python python-3.x linux pip


【解决方案1】:

安装包时尽量明确。只需提及要安装的 Python 版本,然后安装即可。 尝试: python3.9 -m pip install library_name 您正面临这个问题,因为您有多个 python3.x 安装,所以当您尝试 python3 -m pip install library_name 时,它可能正在安装另一个 python3.x 安装的软件包。

您可以通过键入python3 --version 来检查默认的python3.x 版本,如果您不想每次都明确指定它,可以稍后在您的.bashrc 文件中更改命令python

当我在我的系统上尝试python3.8 -v 时,我得到了相同的输出。但明确提及版本名称会有所帮助。

【讨论】:

  • 你得到同样的错误输出?当我输入 python3 --version 这就是我上面的内容,但我不知道这意味着什么。我担心我可能搞砸了安装。
  • 这不是问题...您没有做错任何事...这只是一个输出...我也得到相同的输出...但是当我明确提到python版本时软件包安装没有任何问题。
  • 即使在指定 python3.9 -m pip install pyserial 时,我也得到“没有名为 pip 的模块”
  • 那是不常见的。pip预装了python3.9
  • 我现在无法尝试,因为我不在机器旁,但我假设如果它说当我运行安装检查版本时没有名为 pip 的模块也不会做任何事情.目前我正在以老式的方式安装软件包并从互联网上下载它们并安装在终端中,但我想解决这个问题。
猜你喜欢
  • 2019-02-27
  • 2016-02-21
  • 1970-01-01
  • 2015-12-02
  • 2020-02-10
  • 1970-01-01
  • 1970-01-01
  • 2020-08-19
  • 1970-01-01
相关资源
最近更新 更多