【问题标题】:MacOS - Python says module not found, but it's already installedMacOS - Python 说找不到模块,但它已经安装
【发布时间】:2021-01-31 02:49:29
【问题描述】:

我正在尝试使用 python3 在本地运行 Python 脚本。该脚本需要proxymanager

Requirement already satisfied: proxymanager in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (0.0.6)

但是,当我运行脚本时,我收到以下消息:

  File "/Users/xxx/Folder/script.py", line 5, in <module>
    from proxymanager import ProxyManager
ModuleNotFoundError: No module named 'proxymanager'
Python 3.9.0

我相信这里安装了 Python:

/Library/Frameworks/Python.framework/Versions/3.9

任何帮助将不胜感激,这仍然是新的。谢谢!

【问题讨论】:

标签: python macos terminal module


【解决方案1】:

可能是您将pip 用于不同的Python 发行版。以下是确保一切按计划进行的步骤。

  1. 确保运行所需的发行版。在终端中输入 which python3 并查看运行哪个 Python。是你所期待的吗?如果没有,请考虑 using a symlink 或者坚持使用实际运行的那个。
  2. 您可以使用option -m 为您需要的解释器启动pip
    python3 -m pip install proxymanager
    
  3. 再次启动您的脚本,看看一切是否按计划进行。

考虑使用virtual environments 以避免将来出现此类混淆。

【讨论】:

  • % which python3 /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 这是我所期望的,Python3。所以,我在所有这些安装中都使用终端,我应该使用其他东西吗?
  • 没错,只要使用终端,这就是你真正需要的。命令python3 -m pip install proxymanager 会将您的库安装在正确的位置。
  • python3 -m pip install proxymanager Requirement already satisfied: proxymanager in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (0.0.6) 然后python3 -m pip uninstall proxymanagger WARNING: Skipping proxymanagger as it is not installed.
  • 哇哦,这有点奇怪。不幸的是,我不知道这种行为的解释,我只能提供几个解决方法。 (1) 尝试手动删除/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages 中的proxymanager 文件夹,然后重新安装(2) 尝试使用虚拟环境,它们很好地隔离了已安装的库,也许它会解决问题。
【解决方案2】:

所以,我做了pip3 list 来检查当前安装了哪些模块。

我看到ProxyManager 已安装,但它不是正确的模块。我输入了pip3 uninstall ProxyManager。然后我输入pip3 install proxy-manager。此更改后脚本运行良好。

我不确定是什么导致了错误,但看起来需要proxy-manager 而不是ProxyManager

日志:

ModuleNotFoundError: No module named 'proxymanager' 

现在它工作得很好。我仍然不太了解发生了什么,但看起来有两个名称相似的包?终端输出在整个安装过程中缺少ProxyManager 并没有帮助。正确的输出应该是 Proxy-Manager is missing?

无论怎样,感谢所有帮助过的人。

【讨论】:

    【解决方案3】:

    我会考虑查看虚拟环境。这里的问题可能是您的 python 安装在错误的位置寻找proxymanager

    虚拟环境是给定项目的受限环境,因此如果您只需要一个项目的某些包,那么您可以处理此环境并将它们安装到该环境。它使开发和部署项目变得更加容易。

    试试这个,创建一个新文件夹并在这个文件夹中打开一个终端窗口。 运行以下命令。它使用 Python 自带的包Venv

    在文件夹MyProj中创建环境

    MyProj>> python -m venv MyEnv
    

    激活环境

    MyProj>> cd MyEnv/Scripts
    Scripts>> ./activate
    

    您将知道它已被激活,因为您的命令提示符现在将在其前面显示环境名称。现在安装你的包。

    (MyEnv)MyProj>> pip install proxy-manager
    

    确保它已安装在您的环境中。

    MyProj>> cd MyEnv/Lib/site-packages
    site-packages>> ls 
    pip
    pip-19.2.3.dist-info
    pkg_resources
    proxymanager    ***** HERE IT IS *****
    proxy_manager-0.0.6-py3.7.egg-info
    setuptools
    setuptools-41.2.0.dist-info
    tests
    __pycache__
    easy_install.py
    

    现在尝试运行您的脚本,它应该使用您创建的虚拟环境。

    【讨论】:

      【解决方案4】:

      尝试卸载它并重新安装,也许使用

      pip uninstall proxymanager

      有效吗?否则,您使用的是 PyCharm 之类的 IDE 吗?

      【讨论】:

      • 它确实删除了它,但是当我使用pip3 install ProxyManager 重新安装时,脚本仍然无法运行。我正在使用终端进行安装。
      猜你喜欢
      • 1970-01-01
      • 2020-11-10
      • 1970-01-01
      • 2020-12-04
      • 2020-04-14
      • 1970-01-01
      • 2020-03-15
      • 1970-01-01
      • 2021-06-11
      相关资源
      最近更新 更多