【问题标题】:Imported module was not found?没有找到导入的模块?
【发布时间】:2021-04-02 12:22:34
【问题描述】:

我正在构建一个网络爬虫,我正在尝试导入“请求”包,但我收到了一个错误。我被告知以下内容:

ModuleNotFoundError: 没有名为“请求”的模块

完全错误:

(venv) USERs-MacBook-Pro:Scraper user$ /usr/local/opt/python@3.9/bin/python3.9 /Users/user/git/ML/Python/Practice/Scraper/Scraper.py
Traceback (most recent call last):
  File "/Users/user/git/ML/Python/Practice/Scraper/Scraper.py", line 1, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'

我在设置项目时采取的步骤:

  1. python3 -m venv 项目名称/venv
  2. 源项目名称/venv/bin/activate
  3. python3 -m pip install SomePackage

确认包和依赖已安装:

(venv) USERs-MacBook-Pro:Scraper user$ pip list
Package    Version
---------- ---------
certifi    2020.12.5
chardet    4.0.0
idna       2.10
pip        20.2.3
requests   2.25.1
setuptools 49.2.1
urllib3    1.26.2

【问题讨论】:

  • 我猜pip 没有与python3.9 链接。您可以尝试运行pip --version 并粘贴输出吗?
  • 您似乎正在运行系统 python3,而不是 venv python3。
  • 是的,但是你使用系统python3.9的绝对路径。如果 venv 的默认 python 为 3.9 或 python3.9 filename,请尝试仅使用 python filename 执行它
  • 从您的 venv 中使用的正确可执行文件是 project_name/venv/bin/python3,您使用的是系统版本,难怪导入无法解决。激活您的 venv 后,只需运行 python /Users/user/git/ML/Python/Practice/Scraper/Scraper.py,shell 将使用正确的可执行文件。
  • 因为获取激活脚本会改变当前的 shell 环境。特别是PATH env var,因此在运行python 命令时,您的虚拟环境中的可执行文件将优先于任何其他文件。我猜@itroulli 描述得很好;如果有帮助,别忘了给答案投票。

标签: python-3.x pip python-venv


【解决方案1】:

通过像这样使用系统 Python 的绝对路径:

/usr/local/opt/python@3.9/bin/python3.9 /Users/user/git/ML/Python/Practice/Scraper/Scraper.py

您正在使用系统的 Python 3.9 以及为此安装的软件包,尽管您处于虚拟环境中。

创建虚拟环境时,您正在使用指定的 python 版本创建一个单独的环境,并且您使用 pip 安装的所有包都安装到该环境和该 python 版本。

如果你运行,你会更好地理解:

which python

在您的虚拟环境中。

这将向您展示当您在 venv 中运行 python 时使用的 python,它会不同于

/usr/local/opt/python@3.9/bin/python3.9

因此,通过在您的环境中使用pip 安装requests,它会安装在运行python 时执行的python 环境中。

总而言之,要将安装在 venv 中的软件包与 pip 一起使用,您应该运行脚本(在激活 venv 之后):

python /Users/user/git/ML/Python/Practice/Scraper/Scraper.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多